1.2 Java类的定义
类是对象的抽象,对象是类的具体。
类是描述了一组有相同特性(属性)和相同行为(方法)的一组对象的集合。
对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类
类是一个模板,它描述一类对象的行为和状态。
类是 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类的定义相关推荐
- java类的定义的实例_Java类的定义与实例化
本节着重讲解Java语法,不再对类和对象的概念进行深入阐述,如果你不了解类与对象的基本概念,请查看这里:类与对象的基本概念.面向对象编程(OOP)的概念. Java类的定义 在Java中,类的定义语法 ...
- java类的定义的实例_Java中类的定义和初始化示例详解
类的定义 类的定义格式 //创建类 class classname{ field ://成员属性/字段 method://方法 } class为定义类的关键字,classname为类的名字,{ }为类 ...
- Java类的定义、声明及使用
Java类的定义,声明及使用 一.Java类的声明 1.类在使用前必须先声明然后才可以声明变量,创建对象 2.Java中有四种访问权限,private.default(一般省略).public.pro ...
- 面向过程和面向对象的设计思想、java类、Java类的定义、java对象、对象的创建和使用、类和对象、变量分类、方法分类、构造方法、方法的重载
1.面向过程和面向对象的设计思想 面向过程:procedure oriented programming 缩写 POP. 分析出解决问题所需要的步骤,然后把步骤一步一步实现. 面向过程直接关注流程. ...
- java类的定义的实例_《Java基础知识》Java类的定义及其实例化
类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public classDog { String name;intage;void ...
- java类中定义索引器,C#面向对象基础——字段、属性和索引器
关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...
- 企业级项目实战讲解!java类内部定义枚举
蚂蚁一面 ⼀⾯就做了⼀道算法题,要求两⼩时内完成,给了⻓度为N的有重复元素的数组,要求输出第10⼤的数.典型的TopK问题,快排算法搞定.算法题要注意的是合法性校验.边界条件以及异常的处理.另外,如果 ...
- 零配置 之Spring基于Java类定义Bean配置元数据
转载自 [第十二章]零配置 之 12.4 基于Java类定义Bean配置元数据 --跟我学spring3 12.4 基于Java类定义Bean配置元数据 12.4.1 概述 基于Java类定义B ...
- java 编写方法和属性,Java类属性及方法的定义
文章导读 [在定义类时,经常需要抽象出它的属性和方法,并定义在类的主体中.本文探讨Java类属性及方法的定义和使用.通过本文的学习,你将了解如何在Java类中定义属性及方法.属性值的设置和获取.] 本 ...
最新文章
- loadrunner关联点总结
- 【Flutter】ExpansionTile 可折叠列表
- 安装php5、卸载php、安装php7的教程
- Modbus RTU 通信应用案例
- 近期打算及毕业前要补完的题
- java 多数据源处理_java – 用于处理多个数据源的Spring事务管理
- python 散点图 分类_Python | 分类图
- 泛型(java菜鸟的课堂笔记)
- 贾跃亭自觉“无辜”;《绝地求生》外挂案件逮捕 34 人;VS Code 1.29 发布! | 极客头条...
- CakePHP中文手册【翻译】-基本概念
- python的第三方库是干什么用的-Python 常用的标准库以及第三方库有哪些?
- 无法连接到目标服务器,如何解决IDM连接错误?
- 传统文化千千问重磅来袭!边玩边学,答题赢Kindle、全年免单大奖!——心田花开
- Photoshop二次开发接口介绍
- Project:解决问题:在Microsoft project2016中如何编辑一周七天工作日
- SQL求总和的百分比
- 在mini2440上移植使用ffmpeg录像
- 贪吃蛇大作战游戏——C语言
- h5 换脸 php,HTML5/WebGL变脸(换脸)动画
- linux+fc+网卡驱动,Linux下DM9000网卡驱动实验〈三〉
热门文章
- Ubuntu之GCC:GCC编译器的简介、安装、使用方法之详细攻略
- TypeError: Can not convert a float32 into a Tensor or Operation.
- Python中的argparse模块
- BZOJ1800 [Ahoi2009]fly 飞行棋 其他
- 第二阶段冲刺 第六天
- javascript:void到底是个什么?
- 【基础】利用thrift实现一个非阻塞带有回调机制的客户端
- Android常用代码(类似工具类吧)
- MFC框架类、文档类、视图类相互访问(及窗口句柄获取)的方法
- TCP/IP总结(4)TCP 之数据包格式