开启生长之旅!这是我参加「日新方案 12 月更文挑战」的第8天,点击检查活动详情

面向目标的三大特征

封装: 把相关的数据封装成一个“类”组件
承继: 是子类自动同享父类特点和办法,这是类之间的一种关系
多态: 增强软件的灵活性和重用性

咱们来讲Java封装,它也是Java面向目标的三大特征之一 封装
举个比方:一台电视相当于一个封装,你用遥控器能够能够拜访里面的电视节目;

封装是隐藏目标的特点和完成细节,仅仅对外供给公共的拜访办法,比方类和办法 好处:

提高安全
提高重用性

private关键字

是一个权限修饰符 ,能够用来修饰成员变量和成员办法.被私有化的成员只能在本类中拜访

JAVA 面向对象------ 封装

修饰符的规模

JAVA 面向对象------ 封装

封装分三步:

第一步:将特点进行私有化 private(不能直接修正特点)

package com.info;
   //类    private:私有
public class student {
      private String name; //名字(特点)
      private int id; //学号(特点)
       private char sex;//性别(特点)
}

第二步:供给一个公共的(public)set办法 用于特点的判断并赋值 public void setXX{ XX}

package com.info;
   //类    private:私有
public class student {
      private String name; //名字(特点)
      private int id; //学号(特点)
       private char sex;//性别(特点)
       //供给一些能够操作这些特点的办法
       //供给了一些public的get ,set办法
       //get 获取这个数据
       //set 获取这个数据 
       public void setName(String name){ 
              this.name;
          }
}

第三步:供给一个公共的(public)get办法 用于获取特点的值
public 数据类型 getXX{ return XX}

package com.info;
   //类 private:私有
public class student {
      private String name; //名字(特点)
      private int id; //学号(特点)
       private char sex;//性别(特点)
       //供给一些能够操作这些特点的办法
       //供给了一些public的get ,set办法
       //get 获取这个数据
       //set 设置这个数据 
       public void setName(String name){ 
              this.name;
          }
       public String getName(){
          return this.name;
          }
}

这样,咱们就完成了对私有特点的调用

public class Application {
    public static void main(String[] args) {
          student s =new student();
          String name =s.getName();
         s1.setName("帅哥");
         System.out.println(s.getName());  //输出
    }
}

验证数据

能够在封装中验证数据的合法性

public void setAge(int age) {
           if (age > 120 || age < 0) {    //不合法
               this.age = 3;
           }else {
               this.age = age;
           }
s.setAge(7);
System.out.println(s1.getAge());// 7
s.setAge(-1);
System.out.println(s1.getAge());// 3

将结构器和 setXxx 结合

alt+insert 快捷键
自动生成

JAVA 面向对象------ 封装

JAVA 面向对象------ 封装

package com.encap;
public class encapDome {
   private String name;
   private int age;
    private double salary;
    public encapDome(String name, int age, double salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public double getSalary(double v) {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public void info(){
        System.out.print("名字"+this.name+"年纪"+this.age+"薪水"+this.salary);
    }
}
package com.encap;
public class personInfo {
    public static void main(String[] args) {
        encapDome E=new encapDome("张三",12,3.12);
        E.setSalary(5.32);
      System.out.println( E.getAge());
        E.info();
    }
}
 12  名字张三 年纪12 薪水5.32