封装和private,this,super关键字的简单应用

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.成员方法   调用父类的成员方法

posted @ 2018-07-25 18:43  大数据和AI玩出的梗  阅读(358)  评论(0编辑  收藏  举报