1.private实现封装
eg:使用private封装属性:
private String name;
private int age;
此时使用了private对属性进行了封装,要访问私有属性,按照Java的设计原则必须提供一下俩种方法:
- setter方法:主要用于进行属性内容的设置与修改
- getter方法:主要用于属性内容的取得
eg:
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
public int getAge() {
return age;
}
public void setAge(int i ) {
if(i > 0 && i <= 200){
age = i;
}else{
age = 0;
}
}
public void getPersonInfo(){
System.out.println("姓名:"+name+"年龄:"+age);
}
}
public class Test {
public static void main(String[] args){
Person person = new Person();
person.setName("张三");
person.setAge(-200);
person.getPersonInfo();
}
}
通过上述代码我们可以发现,private实现封装的最大特征在于:值允许本类访问,而不允许外部类访问。
2.类的设计原则
- 编写类时,类中的所有属性必须使用private封装。
- 属性若要被外部访问,必须使用setter、getter方法。
3.构造方法:
eg:public Person(){}
//无参构造方法
所谓的构造方法就是使用关键字new实例化对象时来进行调用的操作方法。
对于构造方法的定义,也需要遵循以下原则:
- 构造方法必须与类名称相同。
- 构造方法没有返回值类型声明。
- 每一个类中一定至少存在一个构造方法(没有明确定义,则系统会自动生成一个,若类中定义了构造方法,则默认的无参构造将不再产生)
构造方法的调用和对象内存分配几乎是同步完成的,因此我们可以利用构造方法来为类中的属性进行初始化操作。(可以避免多次的setter调用)
4.构造方法重载
eg:
public Person(){
System.out.println("===无参构造===");
}
public Person(String n){
System.out.println("===有参构造===");
}
小建议:有若干构造方法时,按照参数个数升序或者降序。
在进行类定义时:①定义属性 ②定义构造方法 ③定义普通方法