面向对象
对象:指客观存在的事物,万事万物都是对象。是同一事物中被抽象出的特例
类:具有相同特征的对象的集合,类是对象的设计图
面向对象编程设计的特征;
封装,多态和继承
封装是面向对象编程的核心思想
类——客户(隐藏细节)
继承指不同类使用相同的属性方法
将父类对象应用于子类的特征就是多态
类的组成
成员属性:成员变量是java中类的属性
类的行为
方法
方法的返回值:凡是可以用来创建对象的类型都可以作为返回值
要注意:
1 如果有返回值,一定要用return关键字返回相应类型的数据。
2 return会强制中断方法
方法的参数
参数种类有:
值参数,引用参数和不定长参数
说明:
1 参数可以有多个且不限制类型
2 每一个参数都必须声明其类型
3 调用方法时,注意参数的顺序
方法定义时的注意事项:
1 方法定义的先后顺序无所谓
2 方法的定义不能产生嵌套包含关系
3 方法定义之后,不会自动执行,如果要想执行必须进行方法的调用。
成员方法
成员方法就是java中类的行为
构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。
说明;
1 构造方法与类名相同
2 构造方法没有返回值
在构造方法中可以进行类的初始化操作。
私有构造方法
private修饰,无法用new初始化
如果在成员方法内定义一个变量,那么这个变量称为局部变量。
注意:局部变量是在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或初始化,否则会出现编译错误。
局部变量的有效范围:
又称为变量的作用域,在声明和结束之间就是有效范围。
java中不同区域可以存在同名变量。
在同一区域中不可以定义同一名称和相同类型的变量
对象的创建
使用new操作符调用构造方法就可以创建一个对象,
string不用new也是对象
对象的使用
对象.类成员(属性,方法())
对象的销毁
java有一套完整的垃圾回收机制
两种常见的对象消亡方式:
1对象超过其作用范围,将消亡
2 当对象被置null值时,将消亡
但是这种机制只能回收new创建的类型,其他可能无法识别。
所以此处提供finalize()方法,垃圾回收时会首先调用该方法。
而且垃圾回收不收人为控制,它执行的时间也不确定。
System.gc()可以强制启动垃圾回收器
现在的硬件可以支持软件,不用考虑垃圾回收的问题。
this关键字
this代表类的本身
this调用自身构造方法(无参调用有参)
类的主方法
主方法是类的入口点,他定义了程序从何处开始。
主方法的语法:
public static void main(String[] args){
}
它是静态的,无返回值,参数是数组
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称){
方法体
return 返回值
}
定义方法时的三要素:
返回值类型
方法名称(小驼峰式命名规则,除第一个单词外的单词首字母大写)
参数列表
方法的三种调用格式:
1 单独调用:方法名称(参数);
2 打印调用:System.out.println(方法名称(参数));
3 赋值调用:数据类型 变量名称=方法名称(参数);
关于有无返回值的方法的调用,注意事项:
对于有返回值的方法,可以使用单独调用,打印或者赋值调用,但对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用
使用方法的注意事项:
1 方法定义的先后顺序无所谓
2 方法的定义不能产生嵌套包含关系
3 方法定义之后,不会自动执行,如果要想执行必须进行方法的调用。
4 如果方法有返回值,那么必须写“return 返回值”,不能不写
5 return后返回的返回值数据,必须和方法的返回值类型相对应
6 对于一个void 没有返回值的方法,不能写return后面的返回值,只能写return自己
7 对于方法当中最后一行的return可以省略不写
8 方法中可以有多个return语句,但是必须保证同时只有一个被执行到
方法的重载:
对于功能类似的方法来说,因为参数列表不同却需要记住那么多不同的方法名称,太麻烦。
所以引入方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
好处:只要记住唯一一个方法名称,就可以实现类似功能的不同方法。
方法重载与下列因素有关:
1 参数个数不同;
2 参数类型不同;
3 参数的多类型顺序不同;
方法重载与下列因素无关:
1 与参数名称无关;
2 与方法的返回值类型无关;