1.将成员变量用private修饰
2.提供对应的getxx()和setxx()方法
1 public class Student { 2 3 private String name; 4 5 private int age; 6 7 public String getName(){ 8 return name; 9 } 10 11 public void setName(String n){ 12 name = n; 13 } 14 15 public int getAge(){ 16 return age; 17 } 18 19 public void setAge(int a){ 20 age = a; 21 } 22 }
1 public class Test { 2 3 public static void main(String[] args) { 4 //创建学生对象 5 Student s = new Student(); 6 7 System.out.println(s.getName() + "-----" + s.getAge()); 8 9 //给成员变量赋值 10 s.setName("张三"); 11 s.setAge(18); 12 System.out.println(s.getName() + "-----" + s.getAge()); 13 } 14 }
this关键字:是当前类的饮用对象。简单记,它就代表当前类的一个对象
注意:哪个对象调用这个方法,在该方法内部的this就代表那个对象。
使用场景:解决局部变量隐藏成员变量
1 public class Student { 2 3 private String name; 4 5 private int age; 6 7 public String getName(){ 8 return name; 9 } 10 11 public void setName(String name){ 12 this.name = name; 13 } 14 15 public int getAge(){ 16 return age; 17 } 18 19 public void setAge(int age){ 20 this.age = age; 21 } 22 }
1 public class Test { 2 3 public static void main(String[] args) { 4 //创建学生对象 5 Student s = new Student(); 6 7 System.out.println(s.getName() + "-----" + s.getAge()); 8 9 //给成员变量赋值 10 s.setName("张三"); 11 s.setAge(18); 12 System.out.println(s.getName() + "-----" + s.getAge()); 13 } 14 }
this和super的区别:
this代表本类对应的引用
super代表父类存储空间的标识(父类的引用,可以操作父类的成员)
使用:
1.调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
1 class Father{ 2 public int num = 10; 3 } 4 5 class Son extends Father{ 6 public int num = 20; 7 8 public void show(){ 9 int num = 30; 10 System.out.println(num);//输出局部范围的num 30 11 System.out.println(this.num);//输出本类成员范围的num 20 12 System.out.println(super.num);//输出父类成员范围的num 10 13 } 14 } 15 16 17 public class TestExtendsDemo { 18 public static void main(String[] args) { 19 Son s = new Son(); 20 s.show(); 21 } 22 }
2. 调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
3.调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法