类是对象的抽象,对象是类的具体。

类是描述了一组有相同特性(属性)和相同行为(方法)的一组对象的集合。

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

类是一个模板,它描述一类对象的行为和状态。

类是 Java 中的一种重要的引用数据类型,也是组成 Java 程序的基本要素,因为所有的 Java 程序都是基于类的。

在 Java 中定义一个类,需要使用 class 关键字、一个自定义的类名和一对表示程序体的大括号。完整语法如下:

[public][abstract|final]class<class_name>[extends<class_name>][implements<interface_name>] {// 定义属性部分<property_type><property1>;<property_type><property2>;<property_type><property3>;…// 定义方法部分function1();function2();function3();…
}

提示:上述语法中,中括号“[]”中的部分表示可以省略,竖线“|”表示“或关系”,例如 abstract|final,说明可以使用 abstract 或 final 关键字,但是两个关键字不能同时出现。

上述语法中各关键字的描述如下。

  • public:表示“共有”的意思。如果使用 public 修饰,则可以被其他类和程序访问。每个 Java 程序的主类都必须是 public类,作为公共工具供其他类和程序使用的类应定义为 public 类。
  • abstract:如果类被 abstract 修饰,则该类为抽象类,抽象类不能被实例化,但抽象类中可以有抽象方法(使用 abstract修饰的方法)和具体方法(没有使用 abstract修饰的方法)。继承该抽象类的所有子类都必须实现该抽象类中的所有抽象方法(除非子类也是抽象类)。
  • final:如果类被 final 修饰,则不允许被继承。
  • class:声明类的关键字。
  • class_name:类的名称。
  • extends:表示继承其他类。
  • implements:表示实现某些接口。
  • property_type:表示成员变量的类型。
  • property:表示成员变量名称。
  • function():表示成员方法名称。

Java 类名的命名规则:

  • 类名应该以下划线(_)或字母开头,最好以字母开头。
  • 第一个字母最好大写,如果类名由多个单词组成,则每个单词的首字母最好都大写。
  • 类名不能为 Java 中的关键字,例如 boolean、this、int 等。
  • 类名不能包含任何嵌入的空格或点号以及除了下划线(_)和美元符号($)字符之外的特殊字符。

例 1
创建一个新的类,就是创建一个新的数据类型。实例化一个类,就是得到类的一个对象。因此,对象就是一组变量和相关方法的集合,其中变量表明对象的状态和属性,方法表明对象所具有的行为。定义一个类的步骤如下所述。

(1) 声明类。编写类的最外层框架,声明一个名称为 Person 的类。

public class Person {// 类的主体
}

(2) 编写类的属性。类中的数据和方法统称为类成员。其中,类的属性就是类的数据成员。通过在类的主体中定义变量来描述类所具有的特征(属性),这里声明的变量称为类的成员变量。

(3) 编写类的方法。类的方法描述了类所具有的行为,是类的方法成员。可以简单地把方法理解为独立完成某个功能的单元模块。

下面来定义一个简单的 Person 类。

public class Person {private String name;    // 姓名private int age;    // 年龄public void tell() {   // 定义说话的方法System.out.println(name+"今年"+age+"岁!");}
}

如上述代码,在 Person 类中首先定义了两个属性,分别为 name 和 age,然后定义了一个名称为 tell() 的方法。

一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
    一个类可以拥有多个方法,在上面的例子中:barking()、hungry() 和 sleeping() 都是 Dog 类的方法。

1.2 Java类的定义相关推荐

  1. java类的定义的实例_Java类的定义与实例化

    本节着重讲解Java语法,不再对类和对象的概念进行深入阐述,如果你不了解类与对象的基本概念,请查看这里:类与对象的基本概念.面向对象编程(OOP)的概念. Java类的定义 在Java中,类的定义语法 ...

  2. java类的定义的实例_Java中类的定义和初始化示例详解

    类的定义 类的定义格式 //创建类 class classname{ field ://成员属性/字段 method://方法 } class为定义类的关键字,classname为类的名字,{ }为类 ...

  3. Java类的定义、声明及使用

    Java类的定义,声明及使用 一.Java类的声明 1.类在使用前必须先声明然后才可以声明变量,创建对象 2.Java中有四种访问权限,private.default(一般省略).public.pro ...

  4. 面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载

    1.面向过程和面向对象的设计思想 面向过程:procedure oriented programming 缩写 POP. 分析出解决问题所需要的步骤,然后把步骤一步一步实现. 面向过程直接关注流程. ...

  5. java类的定义的实例_《Java基础知识》Java类的定义及其实例化

    类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public classDog { String name;intage;void ...

  6. java类中定义索引器,C#面向对象基础——字段、属性和索引器

    关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...

  7. 企业级项目实战讲解!java类内部定义枚举

    蚂蚁一面 ⼀⾯就做了⼀道算法题,要求两⼩时内完成,给了⻓度为N的有重复元素的数组,要求输出第10⼤的数.典型的TopK问题,快排算法搞定.算法题要注意的是合法性校验.边界条件以及异常的处理.另外,如果 ...

  8. 零配置 之Spring基于Java类定义Bean配置元数据

    转载自  [第十二章]零配置 之 12.4 基于Java类定义Bean配置元数据 --跟我学spring3 12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义B ...

  9. java 编写方法和属性,Java类属性及方法的定义

    文章导读 [在定义类时,经常需要抽象出它的属性和方法,并定义在类的主体中.本文探讨Java类属性及方法的定义和使用.通过本文的学习,你将了解如何在Java类中定义属性及方法.属性值的设置和获取.] 本 ...

最新文章

  1. loadrunner关联点总结
  2. 【Flutter】ExpansionTile 可折叠列表
  3. 安装php5、卸载php、安装php7的教程
  4. Modbus RTU 通信应用案例
  5. 近期打算及毕业前要补完的题
  6. java 多数据源处理_java – 用于处理多个数据源的Spring事务管理
  7. python 散点图 分类_Python | 分类图
  8. 泛型(java菜鸟的课堂笔记)
  9. 贾跃亭自觉“无辜”;《绝地求生》外挂案件逮捕 34 人;VS Code 1.29 发布! | 极客头条...
  10. CakePHP中文手册【翻译】-基本概念
  11. python的第三方库是干什么用的-Python 常用的标准库以及第三方库有哪些?
  12. 无法连接到目标服务器,如何解决IDM连接错误?
  13. 传统文化千千问重磅来袭!边玩边学,答题赢Kindle、全年免单大奖!——心田花开
  14. Photoshop二次开发接口介绍
  15. Project:解决问题:在Microsoft project2016中如何编辑一周七天工作日
  16. SQL求总和的百分比
  17. 在mini2440上移植使用ffmpeg录像
  18. 贪吃蛇大作战游戏——C语言
  19. h5 换脸 php,HTML5/WebGL变脸(换脸)动画
  20. linux+fc+网卡驱动,Linux下DM9000网卡驱动实验〈三〉

热门文章

  1. Ubuntu之GCC:GCC编译器的简介、安装、使用方法之详细攻略
  2. TypeError: Can not convert a float32 into a Tensor or Operation.
  3. Python中的argparse模块
  4. BZOJ1800 [Ahoi2009]fly 飞行棋 其他
  5. 第二阶段冲刺 第六天
  6. javascript:void到底是个什么?
  7. 【基础】利用thrift实现一个非阻塞带有回调机制的客户端
  8. Android常用代码(类似工具类吧)
  9. MFC框架类、文档类、视图类相互访问(及窗口句柄获取)的方法
  10. TCP/IP总结(4)TCP 之数据包格式