Java编程思想_面向对象之封装

2021-01-23  本文已影响0人  70fa0b237415

1. 面向对象思想

面向过程思想:就是把关注点放在一件事或一个活动中涉及到的步骤(也就是过程)上的思想(或思维方式)
面向对象思想:就是把关注点放在一件事或一个活动中涉及到的人或事物(也就是对象)上的思想(或思维方式)
面向对象思想的特点:

面向对象的程序开发就是不断的找对象、使用对象、指挥对象做事情的过程
面向对象的思想特征:封装、继承、多态

image.png

2. 类的定义和使用

2.1 如何定义一个类

image.png

自定义类对象作为参数,属于引用传递,传递的是地址值

2.2 使用变量的规则

第一步:TestStudent这个类的字节文件加载到方法区
第二步:main方法进栈,并从第一行代码开始执行
第三步:第一行使用Student类创建对象,但内存中没有Student类,所以要把Student类的字节文件加载到方法区,然后在栈里创建一个Student类的引用stu,new会向堆内存申请开辟空间,这块空间来存储Student类的成员变量和成员方法,并有默认值
第四步:执行main方法的第2和第3行,给成员变量赋值,执行第4行时,调用study方法,所以study方法进栈。

image.png

2.3 局部变量与成员变量

成员变量的位置:类中、方法外
局部变量的位置:方法的参数列表 或 方法内

Java中使用变量,采用就近原则,如果局部变量位置有,就使用;没有就去本类的成员位置找,有就使用;没有就去父类的成员位置找,没有就报错

image.png image.png

3. 封装

封装的好处:提高安全性、提高复用性、复杂的事情简单化

image.png

3.1 private关键字

private:是一种访问权限修饰符,用来修饰类的成员
特点:被他修饰的成员只能在本类中访问

private一般用来修饰成员变量,public一般用来修饰成员方法

3.2 this关键字

表示对本类对象的引用

4. 构造方法

构造方法的定义:
格式
修饰符 构造方法名(参数列表) {
// 方法体
}
要求
方法名必须与类名相同
没有返回值(可以有return)
没有返回值类型(void也不行)
注意事项
若未提供任何构造方法,系统会给出默认的无参构造
若已经提供任何构造方法,系统不再提供无参构造
构造方法可以重载

public class Phone {
    // 构造方法
    // 无参构造
    public Phone () {}
    // 有参构造
    public Phone(String brand, String name) {
        this.brand = brand;
        this.name = name;
    }
    // 定义成员变量
    private String brand;
    private String name;
    // 成员方法
    public void call(String name) {
        System.out.println("给" + name + "打电话");
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public String getBrand() {
        return brand;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
}


public class TestPhone {
    // main方法是程序的主入口
    public static void main(String[] args) {
        Phone p =  new Phone();
        // 给成员变量赋值
        p.setBrand("苹果");
        p.setName("程序猿");
        System.out.println(p.getBrand());
        System.out.println(p.getName());
        // 调用成员方法
        p.call("乔布斯");
        System.out.println("--------------------");

        Phone p2 = new Phone("华为", "小明");
        System.out.println(p2.getBrand());
        System.out.println(p2.getName());
    }
}

5. JavaBean类

image.png
上一篇下一篇

猜你喜欢

热点阅读