Java 基础入门篇(五):面向对象编程

文章介绍了面向对象的核心思想,包括将现实世界的事物视为对象,类作为对象的蓝图。详细阐述了类的定义,对象的创建与内存分配,特别是构造器的作用和调用方式。此外,讨论了this关键字的用途以及封装的概念,强调了JavaBean的标准书写要求。
摘要由CSDN通过智能技术生成


一、面向对象的思想

  面向对象: 把现实世界中的事物全部看成一个个的对象来解决问题的,即万物皆对象。面向对象编程,即使用对象中的方法来解决问题。其好处在于,代码符合人类的思维习惯,编程程序更简单,看程序更容易理解吧。

类(设计图): 相同事物共同特征的描述;对象(实例):对象是类的具体的实例。在 Java 中必须先定义类,才能得到对象。


二、类的定义与对象的创建

类中包含五种成分:成员变量、成员方法、构造器、代码块、内部类。类的定义格式如下:

在这里插入图片描述

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

在这里插入图片描述

注意事项:

类名首字母建议大写,有意义且要满足驼峰。不要用关键字,要使用合法的标志符。
② 一个 Java 文件中可以定义多个类,但是只能一个类是 public 修饰的,而且 public 修饰的类名必须成为 Java 代码的文件名称,否则报错!

对象的创建: 类名 对象名 = new 构造器();
对象的使用:对象名.成员变量;对象名.成员方法


三、对象内存分配情况

对象是引用类型,创建后会在堆内存中进行存储,栈内存存储引用地址。

Java 的内存分配参考:Java基础入门篇(三)—— 数组的定义与内存原理

3.1 两个对象的内存图

在这里插入图片描述


3.2 两个变量指向同一个对象内存图

在这里插入图片描述

注意: 当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的垃圾。Java存在自动垃圾回收器,会定期进行清理。


四、构造器

构造器用于初始化一个类的对象,并返回这个对象的地址。

4.1 构造器的格式与分类

在这里插入图片描述

无参数构造器: 初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值。
有参数构造器: 初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值。

public class Car {
	private String name;
    private Double price;
	...
	//无参数构造器
	public Car(){
		...
	}
	//有参数构造器
	public Car(String name, Double price)(){
		...
	}
}

4.2 构造器的调用

在这里插入图片描述

如:

Car c = new Car(); // 无参构造
Car c1 = new Car("奔驰", 39); // 有参构造

注意事项:

任何类写出来自带一个无参数构造器,写不写都有;
如果定义了一个有参数构造器了,那么无参数构造器就消失了。此时,如果需要使用无参数构造器,必须自己写。


五、 this 关键字

this 代表了当前对象的地址,出现在有参构造函数和成员方法中,可以访问当前对象的成员变量和成员方法。如:

// 有参构造
public Car(String name, double price){
    // 注意:this在构造器中,代表构造器正在初始化的那个对象。
    System.out.println(this);
    this.name = name;
    this.price = price;
}
// 成员方法
public void goWith(String name){
    // 注意:this 代表当前访问该方法的对象
    System.out.println(this.name + "正在和" + name + "比赛");
    this.play();
}

六、封装

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

封装的基本思想: 决定属性和行为归属谁的问题

如:定义人类(名称,年龄,吃饭、睡觉)、定义圆类(半径,画圆)、定义门类(开门,高宽)…

如何更好的封装呢? 成员变量建议 private 私有化,只能本类访问了
合理暴露:提供成套的 getter 和 setter 方法暴露取值和赋值。

public class Car {
    private String name;
    private Double price;

    public Car(){ // 默认有无参构造函数
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getPrice() {
        return price;
    }
    public void setPrice(Double price) {
        this.price = price;
    }
}

七、标准JavaBean

JavaBean 就是所谓的实体类(学生类,老师类,汽车类,票类,人类)

作用:创建对象,封装数据的。

标准Bean的书写要求:

成员变量建议 private 私有化,只能本类访问了
② 合理暴露,提供成套的 getter 和 setter 方法暴露取值和赋值。
③ 必须提供无参数构造器;有参数构造器是可写可不写的。


补充:局部变量和成员变量的区别

在这里插入图片描述


文章参考:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Xiu Yan

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

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

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

打赏作者

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

抵扣说明:

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

余额充值