Java封装以及this关键字的用法

A:封装概述
是面向对象三大特征之一(封装/继承/多态 )
是面向对象编程语言对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。就像刚才说的年龄。
B:封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
成员变量private,提供对应的getXxx( ) / setXxx( )方法
C:好处:
通过方法来控制成员变量的操作,提高了代码的安全性
把代码用方法进行封装,提高了代码的复用性

package Object;
/*
  学生类:
      起名字我们要求做到见名知意;
      而我们现在代码中的a就没有做到见名知意,需要进行改进

  **  就近原则:变量在使用的时候,有局部变量和成员变量重名,则采用就近原则
              首先找到和使用的是局部变量;
      有无办法把局部变量的name赋值给成员变量的name呢?
          有: 使用this关键字就可以解决这个问题

       this:代表所在类的对象引用;
             方法被那个对象调用,this就代表那个对象
       使用场景:
              局部变量隐藏成员变量
*/
public class Student03 {
    
    
  //创建对象

  //成员变量
  //String name;
  //int age;

  //改为private修饰
  private String name;
  private int age;

  public void setName(String name){
    
    //原来为String a;
      //name=name;//a 没有做到见名知意
      this.name=name;//name没有加this,指代最近的String name;
  }
  public String getName(){
    
    
      return name;
  }
  public void setAge(int age){
    
    //原来为String a;
      //age=age;//a 没有做到见名知意
      this.age=age;
  }
  public int getAge(){
    
    
      return age;
  }
  //成员方法
  public void show(){
    
    
      System.out.println("姓名:"+name+" 年龄:"+age);
  }
}
package Object;

public class StudentDemo03 {
    
    
    public static void main(String[] args) {
    
    
        Student03 s=new Student03();
        s.show();

        //区别于下面的
        System.out.println("姓名:"+s.getName()+" 年龄:"+s.getAge());
        s.setName("李磊");
        s.setAge(20);
        s.show();
        s.setName("韩飞");
        s.setAge(18);
        s.show();
    }
}

猜你喜欢

转载自blog.csdn.net/m0_52646273/article/details/114023718
今日推荐