类与对象
1、类中可以定义成员变量和成员方法
-成员变量--描述对象的特征(属性)
-成员方法--描述对象的行为(方法)
2、在java中,
定义在类中的变量被称为成员变量
定义在方法中的变量被称为局部变量
3、用new关键字来创建对象:
格式:类名 对象名称 = new 类名 ();
在创建类名对象后,可以通过对象的引用来访问对象所有的成员
格式:对象引用.对象成员
4、所谓类的封装是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,
私有属性只能在它所在类中被访问。
为了能让外界访问私有属性,可获取属性值的getXxx()方法和设置属性值的setXxx()方法
构造方法
具体:
-方法名与类名相同
-在方法名的前面没有返回值类型的声明
-在方法中不能使用return语句返回一个值
构造方法的重载
-在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或者参数个数不同即可
-在创建对象时,可以通过不同的构造方法为不同的属性赋值
-为了方便实例化对象,构造方法通常会使用public来修饰
this关键字
常用方法:
1、通过this关键字可以明确地去访问一个类的成员变量,解决与局部变量名称冲突问题
2、通过this关键字调用成员方法
3、构造方法是在实例化对象时被java虚拟化自动调用的,在程序中不能像调用其他方法一
样去调用构造方法,但可以在一个构造方法中使用“this([参数1,参数2····])”
的形式来调用其他的构造方法。
在使用this调用类的构造方法时,应注意以下几点
1、只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用。
2、在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。
3、不能在一个类的两个构造方法中使用this互相调用。
垃圾回收
-除了等待java虚拟机进行自动垃圾回收,也可以通过调用System.gc()方法来通知java虚拟
机立即进行垃圾回收
-在类中通过定义finalize()方法来观察对象何时被释放
-java虚拟机的垃圾回收操作是在后台完成的,程序结束后,垃圾回收的操作也将终止
static关键字
在一个java类中,static -- 静态变量
访问形式:类名.变量名
在一个java类中,static -- 静态方法
访问形式:类名.方法名
在一个java类中,static -- 静态代码块
由于类只加载一次,因此静态代码块只执行一次
使用static关键字来修饰成员变量,该变量被称作静态变量
在类中定义的方法前加上static关键字即可,我们称为这种方法为静态方法
用static关键字修饰的代码块称为静态代码块
注意:
1、static关键字只能用于修饰成员变量,不能用于修饰局部变量,否则编译会报错
2、在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成
员需要先创建对象才能访问,而静态方法在被调用时可以不创建如何对象
3、静态方法不需要创建对象就可以调用
Single类就实现了单例模式,它具备如下的特点:
-类的构造方法使用private修饰,声明为私有,这样就不能在类的外部使用new关键字来创建实例对象了。
-在类的内部创建一个该类的实例对象,并使用静态变量INSTANCE引用该对,由于变量应该禁止外界直接访问,
因此使用private修饰,声明为私有成员
-为了让类的外部能够获得实例对象,需要定义一个静态方法getInstance(),用于返回该类实例INSTANCE。由
于方法是静态的,外界可以通过“类名.方法名”的方式来访问。
内部类
成员内部类
内部类可以在外部类中被使用,并能访问外部类的成员
如果想通过外部类去访问内部类,则需要通过外部类对象去创建内部类对象,创建内部类对象的具体语法格式:
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
内部类Inner使用static关键字来修饰,是一个静态内部类
注意:
如果内部类被声明私有,外界将无法访问
静态内部类
可以使用static关键字来修饰一个成员内部类,该内部类被称为静态内部类
创建静态内部类对象的具体语法格式:
外部类名.内部类名 变量名 = new 外部类名.内部类名();
注意:
在静态内部类中只能访问外部类的静态成员
在静态内部类中可以定义静态的成员,而在非静态的内部类中不允许定义静态的成员。
方法内部类
方法内部类是指在成员方法中定义的类,它只能在当前方法中被使用
方法内部类也可以访问外部类的成员变量