一、类的私有成员与公共成员
-
私有成员
如果没有一个方法去限制对类中成员的访问,则可能会造成错误的输入,而为了防止这种情况的发生,Java中提供了私有成员访问控制修饰符private
,在类的成员声明之前加上private
,则无法从类的外部访问到该类的内部成员,而只能被该类的自身访问和修改,而不可以被其他类访问。从而达到了保护数据的目的。 -
公共成员
public
公共访问控制符,使得该成员可以被其他的类访问。 -
缺省访问控制符
若在类成员的前面不加任何访问控制符,则该成员具有缺省的访问控制特性,这种缺省访问控制权表示这个成员只可以被同一个包中的类访问,不可以被其他包的类所使用的。
二、方法的重载
方法的重载时实现“多态”的一种方法。什么叫重载,就是一个类中具有相同名称的多个方法,这多个的同名方法参数个数不同,或者参数类型不同,则这些同名的方法则具有不同的功能。
例如:
public class demo{
public void printf(int num){
System.out.println(num);
}
public void printf(float num){
System.out.println(num);
}
public void printf(int num1, int num2){
System.out.println(num1+num2);
}
}
三、构造方法
-
构造方法简介
a.构造方法是一种比较特殊的方法,它是对象在创建时候就是执行的一种方法。它没有返回值,但是不需要用void
去进行修饰。因为一个类的构造方法返回值类型就是类本身。 构造方法在定义之后,创建对象实例的时候,就回自动调用它,因此构造方法不需要在程序中直接调用。b.构造方法的特性:
- 构造方法的方法名和类名相同。
- 构造方法没有返回值,且不能写
void
。 - 构造方法的主要作用是完成类对象的初始化工作。
- 构造方法一般使用
new
来调用。 - 创建一个类的对象的时候,Java会自动调用类的构造方法去完成初始化工作。
-
默认构造方法
一般来说,如果类中没有定义构造方法,类会提供一个默认的构造方法。程序创建对象的时候会自动调用默认构造方法。
注意:若果在一个类之中,我们已经定义了一个有参数的构造方法,但是却调用五参数的构造方法去创建对象的时候,此时编译就不会通过。 -
构造方法的重载
我们可以对构造函数进行重载。public class demo{ int height; demo(){//默认无参构造函数 } demo(int height){//重载构造函数 this.height = height; } }
四、静态成员
static
修饰的成员被称为静态成员,也被称为类成员,不用static
修饰的成员称为实例成员。
-
实例成员
类定义中成员变量或者成员方法没有被static
修饰的,就是实例成员。 -
静态成员
使用static
修饰的成员变量称为静态变量,也就是类变量。所有对象都是享用同一块内存单元。
并且,静态变量不需要实例化就可以使用。
使用方法:类名.静态变量名; 对象名.静态变量名;
-
静态方法
与静态成员类似的是类的静态方法。
static方法中,不能使用this和super,因为this是代表调用该方法的对象,但是现在静态方法不需要使用对象来进行调用。而super也是与this类似,是属于对象范畴的东西,但是静态方法是属于类范畴的东西。 -
静态初始化器
静态初始化器由关键字static
修饰的一队花括号"{}"括起来的语句块,它的作用于构造方法有些相似,都是用来初始化工作的。
静态初始化器和构造方法不同的:a.构造方法是对每个新创建的对象进行初始化,但是静态初始化器是对类自身进行初始化。
b.构造方法是在使用new
运算符创建新对象的时候由系统自动执行,但是静态初始化器一般不能够由程序调用,它使用所属的类被加载入内存调用执行的。
c.用new
运算符创建多少新对象,构造方法就会被调用多少次,但是静态初始化器却只是类在被加载入内存时只执行一次,与创建了多少的对象无关。