创建类和方法
2021-11-16 18:45:09 0 举报
AI智能生成
讲述了定义类、创建实例变量和类变量、创建方法、创建Java应用程序、Java应用程序和命令行参数、创建名称相同但参数不同的方法、构造方法、覆盖方法、结束方法等内容
作者其他创作
大纲/内容
程序的构成
主类
支持主类的其他类
支持类包括Java2类库中的类
定义类
定义方式
class关键字和类名
层次关系
类是Object派生的,Object是所有类的超类
继承的实现
extends关键字用来指定超类
创建实例变量和类变量
行为的定义方式
新类的变量
类变量
实例变量
局部变量
新类的方法
实例变量
与局部变量的区别
实例变量在类定义中
定义
在方法定义外声明,且没有被static修饰的变量
开发建议
在第一行类定义后声明
类变量
适用范围
整个类
作用
在同一个类的不同对象之间共享信息和记录类级信息
定义方式
static声明
创建方法
作用
定义了对象的行为
定义方法
组成
方法名
参数列表
方法返回的对象类型或基本数据类型
方法体
方法重载
在同一个类中包含多个名称相同,但特征标不同
基本定义方式
returnType methodName(type1 arg1,type2 arg2...){ //body of the method }
方法的返回值类型
返回数组对象,[]位于returnType或参数列表后面,一般放在returnType后面
参数列表
变量声明
放在圆括号内,使用逗号分隔
方法体内的局部变量
方法体
语句
表达式
对其对象的方法调用
条件语句
循环
返回值
返回某种类型的值
关键字this
作用
指向当前对象
任何可使用对象引用的地方
省略形式
不需要显式地使用this
是否省略
取决于是否在局部作用域中声明了同名变量
不能使用的场景
在类方法中
变量作用域和方法定义
超出作用域
变量不复存在
作用域的确认方式
声明变量时,便限定了作用域
局部变量在定义它的语句块中使用
实例变量时整个类
作用域查找方法
从最里面的作用域向外查找其定义
没有找到,检查类本身
作用域作用
程序的一部分,可以使用变量或其它类型的信息
可以在较小的作用域内创建变量来隐藏或取代该变量的原始值
开发中带来的问题
子类中重新定义了超类中已有变量,会使用隐蔽性更强
避免办法
了解超类中的所有变量
将参数传递给方法
按引用传递
对象
按值传递
基本数据类型
类方法
使用范围
类的任何实例使用
其它类使用
定义方式
static
实例方法和类方法的选择方式
实例方法
大多数操作或影响特定对象的方法
类方法
提供通用功能,不直接影响特定实例的方法
子主题
创建名称相同但参数不同的方法
同名方法类的区分
参数个数
参数的数据类型或对象
重载
定义
多个名称相同但特征标不同的方法
优点
避免使用完全不同的方法完成几乎相同的任务
方法能够根据收到的参数进行不同操作
调用
根据方法名和参数进行匹配
识别方式
不考虑返回值类型‘
方法中每个参数的变量名无关紧要
只和参数的数目、类型有关
简化方式
几个方法完成类似的任务时,在一个方法中调用另一个
构造方法
介绍
调用方式
被自动调用
定义
在对象被创建时调用的方法
不能直接调用
new创建新实例的步骤
为对象分配空间
初始化对象的实例变量
调用类的构造方法
缺省情况
结合使用new和该类的名称时,仍将创建一个对象
作用
实例变量设置初值
调用基于这些变量的方法
调用其它对象的方法以及设置对象的初始数学
重载构造方法
与常规方法的区别
名称总是与类相同
没有返回类型
不能使用return语句来返回一个值
调用另一个构造方法
this(arg1,arg2,arg3);
重载构造方法
作用
接受不同数目和类型的参数
使用不同类型的输入计算出对应的属性
覆盖方法
查找方法的方式
调用对象的方法时,在该对象的类中查找方法的定义
没有找到
将方法调用沿类层次向上传递
使用场景
对象对方法调用做出相应,但行为不同
作用
完全替换原来的方法定义
扩展原来的方法,加入其它行为
创建覆盖现有方法的方法
在子类中定义一个特征标与超类相同的方法
调用原来的方法
关键字super
将方法调用沿类层次结构向上传递
覆盖构造方法
显式调用超类的构造方法
super(arg1.arg2,...)
super特殊规则
必须是构造方法定义中的第一条语句
结束方法
调用时机
对象被垃圾收集器删除以释放其占用的内存之前调用
实现方式
默认
finalize()
不执行任何操作
自己创建
使用特征标来覆盖方法finalize()
在方法体中需要有对象执行的清理代码
删除引用
将类和实例变量设置为null
用途
优化对象的删除
main()方法
程序运行入口
应用程序本质
独立运行的Java程序
构成
一个或多个类
入口类,在该类中包含main()方法
类方法
public static void main(String[] arguments){ //body of method }
多个main()方法时,
只有入口类中的main()被调用
其它main()方法被忽略
命令行参数
命令行作用
参数或选项传递给应用程序
使用参数
决定应用程序如何运行
让通用的应用程序能够操纵不同类型的输入
将参数传递给Java应用程序
参数传递的方式由平台决定
规范
参数之间使用空格
包含空格的参数使用引号将其括起
引号不被是为参数的一部分
在Java程序中处理参数
执行方式
参数被存在一个字符串数组中,被传递给main()
处理方式
命令行参数小于期望的个数,程序将因ArrayIndexOutofBoundException错误而崩溃
命令行参数作在数学表达式中使用它们之前必须将其转换为数值
0 条评论
下一页