Java语言第四周学习
私有成员与公共成员
一、私有成员
在类的成员变量前面加上“private”,就不能被该类外部其他任何类访问,包括其子类。因此达到对数据最高级别保密的目的。
二、公共成员
在公共方法前面加上“piblic”,例如:public void setCylinder().私有成员才能得以被访问。
三、缺省访问控制符
如果在类成员的前面不加任何访问控制符,即具有缺省访问控制符的特性。
缺省访问控制符的特性:
这种缺省的访问控制权限规定只能被同一个包中的类访问和引用,不能被其他包中的类使用。子类若与父类不在一个包中,那么子类也不能访问父类中的缺省访问控制成员。
方法的重载&构造方法
四、方法重载
何为方法重载呢?
即在程序设计中,有些方法的含义相同,但带有不同的参数,这些方法使用使用相同的名字,这就叫方法的重载。
其中参数类型是关键,仅仅变量名不同是不行的。也就是说参数列表必须不同,即:或者参数个数不同,或者参数类型不同,或者参数的顺序不同。通过方法的重载,只需要一个方法名即能实现多个功能,非常方便。
说明:Java语言中不允许参数个数或参数类型完全相同,而只有返回值类型不同的重载。
五、构造方法
构造方法的性质:
1、构造方法的方法名与类名一致。
2、构造方法没有返回值,但不能用void。(这是因为一个类的构造方法的返回值就是该类本身)
3、构造方法的主要作用是完成对类的对象的初始化工作。
4、构造方法一般不能直接调用,而是通过new来调用,也就是说在定义类的对象时(需要new)就自 动调用了。
5、在创建一个类的对象的同时,系统会自动调用该类的构造方法为新对象初始化。
class Cylinder{
private double radius;
private int height;
private double pi = 3.1415926535;
public Cylinder(double r,int h){//定义有参数的构造方法,方法名与类名必须一致
radius = r;
height = h;
}
double area(){//有返回值
return pi*radius*radius;
}
double volume(){
return area()*height;
}
}
public class wang04{
public static void main(String[] args){
Cylinder volu = new Cylinder(3.5,8);//调用有参构造方法的对象
System.out.println("圆柱的底面积:"+volu.area());//注意:对象.成员方法()
System.out.println("圆柱的体积是:"+volu.volume());
}
}
六、默认构造方法
它没有参数,其方法体中也没有任何代码,即什么也不做。(我们最开始的时候用的就是它了)
七、在一个构造方法内调用另一个构造方法
1、在一个构造方法内调用另一个构造方法时,必须使用this()语句来调用,否则报错。
2、this()语句必须写在构造方法内的首行位置。
class Cylinder{
private double radius;
private int height;
private double pi = 3.1415926535;
String color;
public Cylinder(){//定义有参数的构造方法,方法名与类名必须一致
this(2.5,5,"红色"); //调用另一种构造方法
}
public Cylinder(double r,int h,String str){
radius = r;
height = h;
color = str;
}
public void show(){
System.out.println("圆柱的底面积:"+area());//对象.成员方法()
System.out.println("圆柱的体积是:"+volume());
System.out.println("圆柱的颜色是:"+color);
}
double area(){//有返回值
return pi*radius*radius;
}
double volume(){
return area()*height;
}
}
public class wang04{
public static void main(String[] args){
Cylinder volu = new Cylinder();//调用有参构造方法的对象
}
}
静态变量
七、static
1、静态变量又被称之为“类变量”,字面理解即隶属于类的变量而不属于任何一个类的具体对象。 也就是说,对于该类的任何一个具体对象而言,静态变量是一个公共的存储单元,而不是保存在某个具体 对象的储存空间中。就是“公用”的意思。
2、静态方法,即类方法。类方法只能调用类成员,虽然不能直接访问非静态成员,但是可以通过创 建对象的方法间接的访问非静态成员,对于静态方法的调用建议使用:“类名.类方法名;”的形式来 访问。
当然与静态成员、静态方法相反的有实例成员、实例方法。它们有属于自己的独立的空间,当其中一个变量被更改时,另一个变量不受到影响。(在开始的学习中一直用的都是实例成员、实例方法)
八、静态初始化器
静态初始化器是对类自身的初始化,在类被加载如内存时只执行一次,与创建多少对象无关。若有多个静态初始化器,则他们在类的初始化时会依次执行。
格式:
static
{
…
}