面向对象的三大特征:封装线,继承,多态
封装性在程序中的表达:
1:方法
2:private ==》私有化(关键字)
封装就是将一些细节东西隐藏起来,外界不可见
在java Bean中一旦使用了private进行封装,那么成员变量就不可以在本类以外的类使用,所以想要继续获取成员变量,那么就需要使用get/set方法来得到成员变量
注意:使用private也是为了防止一些不合理的数值赋值给成员变量,比如将年龄设置为负数,所以使用set可以在set方法中对数值进行判断是否合理在赋值给成员变量
注意:对于boolean基本类型来说,设置或者改变成员变量是用set方法,但是想要得到成员变量就不能使用get方法,需要使用 “”is成员变量名()"
public class Phone {
private int price;
// get/set
public void setPrice(int a) {
price = a;
}
public int getPrice() {
return price;
}
// 成员方法
public void play() {
System.out.println("玩");
}
}
/*
* phone的对象
* */
public class GetPhone {
public static void main(String[] args) {
// 创建对象
Phone phone=new Phone();
phone.setPrice(4999);
System.out.println(phone.getPrice());
}
}
使用了get/set方法可以在java Bean被封装时得到成员变量,但是如果在set方法的参数中,变量名与成员变量名一致,那么成员变量就不会有具体的值,会有默认值
public void setPrice(int price) {
price = price;
}
所以当局部变量与成员变量名称一致时,根据就近原则使用局部变量
那么这时候就需要在成员变量后来一个this(关键字)
this:谁调用这个方法谁就是this
比如phone调用set方法来给成员变量赋值,那么phone就是this, this.price就是成员变量的赋值了
public void setPrice(int price) {
this.price = price;
}
构造方法:用来创建对象的方法,当通过new关键字来创建对象时,就是在调用构造方法
注意:构造方法的方法名必须与类名一致
构造方法有两种,无参构造与有参构造(全参构造)
注意:当java Bean中没有构造方法时,但是又创建了对象,那么这个无参构造方法是编译器赠送的,所以,当java Bean要么没有构造方法(由编译器赠送一个无参构造),要么就写全两种构造方法
// 构造方法
public Phone(){
System.out.println("无参构造");
}
public Phone(int price){
System.out.println("全参构造");
this.price=price;
}
有了有参构造方法也还是需要set方法,可以用来修改成员变量
一个标准的类具有以下四个步骤就是一个java Bean:
1:无参构造方法
2:有参构造方法
3:get/set方法
4:private关键字私有化成员变量
构造方法和get/set方法的快捷键为 :Alt+F12