Java基础-封装

如果你不相信努力和时光,那么成果就会是第一个选择辜负你的。不要去否定你自己的过去,也不要用你的过去牵扯你现在的努力和对未来的展望。不是因为拥有希望你才去努力,而是去努力了,你才有可能看到希望的光芒。Java基础-封装,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

封装

封装 ,解决是数据安全性问题

继承,代码重用

多态 解决扩展问题

1.1.封装的实现

  • 把成员变量私有化,使用private修饰
  • 提供共有的get/set方法 ,使用public 修饰
public class Car {
    private String color;
    private String brand;
    //私有的
    private double price;
    public Car() {
    }
    public Car(String color, String brand, double price) {
        this.color = color;
        this.brand = brand;
        this.price = price;
    }
    public double getPrice() {
        return this.price;
    }
    public void setPrice(double price) {
        if (price < 10) {
            this.price = 10;
        } else {
            this.price = price;
        }
    }
    public String getColor() {
        return color;
    }
    public void setColor(String color) {
        this.color = color;
    }
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public void run() {
        System.out.println("在跑");
    }
}

1.2. this关键字

  • 指代的是当前对象
  • 本质上就是一个变量,它指向当前对象

使用的场景:

1,当方法的形参参数名和成员变量名一样的时候用到this

2,当成员变量和局部变量重名的时候,使用this访问成员变量

3,在构造方法中调用另一个构造方法,this调用放到第一行

  public void run() {
        //局部变量
        String color;
        // this.color是成员变量
        System.out.println(this.color);
        System.out.println("在跑");
    }
   public Car(String color, String brand, double price) {
       //调用另一个构造方法
        this(color, brand);
        this.price = price;
    }

    public Car(String color, String brand) {
        this.color = color;
        this.brand = brand;
    }

1.3. static关键字

  • static表示静态的,可以修饰方法和成员变量;静态的只有一份
  • 如果static修饰成员变量,表示该成员变量只有一份,该类所有对象共享;访问的时候可以直接使用类名.属性名
  • static修饰方法的时候表示此方法是静态方法;静态方法里面不能出现this关键字;调用的时候直接使用 类名.方法名();静态方法中不能访问非静态成员(成员变量/方法)
  • static修饰的代码块是静态代码块,整个类加载过程中 只执行一次而且优先于构造执行
//修饰成员变量
    private static String color;
    private String brand;
    //私有的
    private static double price;

修饰方法

    /**
     * 静态方法中不能访问非静态成员(成员变量/方法)
     */
    public static void run() {
        //局部变量
        String color;
        // this.color是成员变量
        System.out.println(price);
        System.out.println("在跑");
        method();
    }

 	public static void method() {

    }

修饰代码块,只会执行一次

    /**
     * 这是静态代码块,系统资源初始化
     */
    static {
        System.out.println("静态代码块执行了");
    }

统计该类目前有多少个对象

public class Student {
    private String name;
    private int age;
    private static int num; // 0

    public Student() {
        num++;
        System.out.println("学生对象有 " + num);
    }

    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 int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }
}

1.4. package和import关键字

  • package是包,用来解决类名冲突问题的
  • 一般公司域名倒写
  • 同一个包下面,类名不能一样;package只能出现在首行
  • import的使用情况:当前package下面没有此类的时候一定要加import 导入进来
  • import 是导入的意思 后面是全路径(包名+类名)
  • java.lang下面的class会自动导入

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/192965.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!