封装:
封装概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:
隐匿了实现细节,提供公共的访问方式。
提高了代码的复用性
提高安全性
封装的原则:
将不需要对外提供的内容都隐藏起来
把属性隐藏,提供公共方法对其访问。
private关键字:
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问。
private最常见的应用:
把成员变量用private修饰
提供对应的getXxx()/setXxx()方法
public class StudentDemo1 {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class StudentTest {
public static void main(String[] args) {
StudentDemo1 s =new StudentDemo1();
s.setAge(10);
System.out.println(s.getAge());
}
}
this:是当前类的对象引用。简单来说就是代表当前类的一个对象。
注意:谁调用这个方法,在该方法内部的this就代表谁。
this的场景:
结局局部变量隐藏成员变量。
构造方法:
作用:给对象的数据进行初始化
格式:
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
构造方法的注意事项:
如果我们没有给出构造方法,系统将自己提供一个无参构造方法
如果我们给了构造方法,系统不在提供默认的无参构造方法。注意,这个时候,如果我们还想使用无参构造的方法,就必须自己给出,建议永远自己给出无参构造方法。
构造方法用来初始化数据。
一个完整的案例:
public class StudentDemo2 {
private String name;
private int age;
public StudentDemo2(){
}
public StudentDemo2(String name,int age){
this.name=name;
this.age=age;
}
public void setAge(int age){
this.age=age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
public class StudentTest {
public static void main(String[] args) {
StudentDemo1 s =new StudentDemo1();
s.setAge(10);
System.out.println(s.getAge());
StudentDemo2 studentDemo2 = new StudentDemo2();
studentDemo2.setAge(10);
studentDemo2.setName("Lisi");
System.out.println(studentDemo2.getAge()+studentDemo2.getName());
StudentDemo2 ss= new StudentDemo2("dijiaze",30);
System.out.println(ss.getAge()+ss.getName());
}
}