java封装

封装:封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

//封装的步骤:
//1 私有化private方法
//2 提供public方法,一般是set和get方法
//3 在构造中调用set和get方法,而不是直接赋值

实例代码:

package packaging;

public class Person {
private int age;
private String name;
public Person(){//构造方法一般用于属性等的初始化工作
System.out.println("Person()");
age = 25;
name = "zhangfei";
}
public Person(int a,String n){
System.out.println("Person(int,String)");
// age = a;
// name = n;
setAge(a);
setName(n);
}

//get:有返回值,不需要参数
public String getName(){
return name;
}

//set:无返回值,需要参数
public void setName(String n){
name = n;

}
public int getAge(){
return age;
}
public void setAge(int a){
if (a>=0 && a<150){
age = a;
}
else{
System.out.println("年龄非法");
}
age = a;
}
public void show(){
System.out.println("name:"+name+",age:"+age);
}
}


package packaging;
//封装的步骤:
//1 私有化private方法
//2 提供public方法,一般是set和get方法
//3 在构造中调用set和get方法,而不是直接赋值
public class TestPerson {
public static void main(String args[]){
Person p = new Person();
p.show();
//p.name = "liubei";  //因为私有而不能调用
//p.age = -30;
p.setName("刘备");
p.setAge(3000);//因为setAge进行封装,判断了age的合理范围,所以此处会打印出“年龄非法”
p.show();
Person p2 = new Person(-30,"关羽"); //在构造方法中调用了set,所以同样会打印出“年龄非法”
p2.show();

}
}

猜你喜欢

转载自blog.csdn.net/zhengshengnan123/article/details/73195973