(十)面向对象

目录

        前言:

        一、概述

        二、内存机制

        三、构造器

        四、this关键字

        五、封装

        六、javaBean

前言:

        面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计软件开发,扩展到如数据库系统交互式界面、应用结构、应用平台、分布式系统网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

        面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

一、概述

1.设计类,创建对象并使用

        类(设计图):是对象共同特征的描述。

        对象:是真实存在的具体实例。

        结论:在java中,必须先设计类,才能创建对象并使用。

2.如何设计类:

public class 类名{

    1.成员变量(代表属性,一般是名词)
    2.成员方法(代表行为,一般是动词)
    3.构造器
    4.代码块
    5.内部类

}

3.如何得到类的对象

        类名 对象名 = new 类名();

4.如何使用对象

        访问属性:对象名.成员方法

        访问行为:对象名.方法名(...)

5.代码演练:

①定义汽车类

public class Car {
    /*
    成员变量
     */
    String name;
    double price;
    /*
    方法
     */
​
    public void start() {
        System.out.println(name+"启动了");
    }
    public void run(){
        System.out.println("价格是:"+price);
    }
}

②使用汽车类对象

public class Test {
    public static void main(String[] args) {
        //创建汽车对象
        Car c = new Car();
        c.name = "宝马";
        c.price = 39.7;
        System.out.println(c.name);
        System.out.println(c.price);
        c.start();
        c.run();
    }
}

结果为:

6.定义类的注意事项:

        ①类名首字母建议大写,满足驼峰命名法,不能使用关键字,必须是合法标识符,且有意义。

        ②一个java文件中可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。

        ③成员变量前的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值。

二、内存机制

1.多个对象的内存图:

2.总结:

①对象到底放在哪个位置的?

        存放在堆内存中

② Car c = new Car(); c变量名中存储的是什么?

        存储的是对象在堆内存中的地址

③成员变量(name、price)的数据放在哪里?存在于哪个位置?

        对象中,存在于堆内存中;

2.两个变量指向同一个对象的内存图:

3.垃圾回收机制

        当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的"垃圾"。

三、构造器

1.作用:

        定义在类中的,可以用于初始化一个类的对象,并返回对象的地址。

2.构造器的格式:

3.调用构造器得到对象的格式

        类 变量名称 = new 构造器;

4.构造器的分类和作用:

        ①无参数构造器(默认存在的):初始化对象时,成员变量的数据均采用默认值。

        ②有参数构造器:在初始化对象的时候,同时可以接受参数为对象进行赋值。

5注意事项:

        ①任何类定义出来,默认自带了无参数构造器,写不写都有;

        ②一旦定义了有参数构造器,那么无参数构造器就没有了,如果还想用无参数构造器,此时就需要自己手写一个无参数构造器了。

四、this关键字

1.介绍

        this关键字可以出现在构造器、方法中;

        代表当前对象的地址;

2.作用:

        可以用于指定访问当前对象的成员变量、成员方法。

五、封装

面向对象的三大特征:封装、继承、多态。

封装:告诉我们,如何正确设计对象的属性和方法。

封装的原则:对象代表什么,就得封装对应的数据,并提供数据对应得行为。

private:修饰的成员只能在当前类中访问。

六、javaBean

        javaBean也被称为实体类,其对象可以用于在程序中封装数据。

代码演示:

public class Test2 {
    private String name;
    private Integer age;
    private String sex;
​
    public Test2() {
    }
​
    public Test2(String name, Integer age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
​
    public Integer getAge() {
        return age;
    }
​
    public void setAge(Integer age) {
        this.age = age;
    }
​
    public String getSex() {
        return sex;
    }
​
    public void setSex(String sex) {
        this.sex = sex;
    }
​
    @Override
    public String toString() {
        return "Test2{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

补充:

成员变量和局部变量的区别?

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风残照

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值