一、面向对象的思想
- 面向对象是一种(符合人类思维习惯的编程)思想,是 Java 基础知识中最重要的部分
- 面向对象是相对面向过程而言的,面向对象和面向过程都是一种思想
-
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用
-
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为
-
面向过程中的执行者,变成了面向对象中的指挥者
二、三大特征
1.封装性:面向对象的核心思想;把对象的属性和行为看成是一个密不可分的整体,将这两者“封装”在一起(封装在对象中);将不想让外界知道的信息隐藏起来
在 Java 中类中成员的访问修饰符有:public, protected, <default>, private,这四个修饰符的访问权限依次降低。
2.继承性:主要描述的是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行扩展。继承不仅增强了代码的复用性、提高了开发效率,还降低了程序产生错误的可能性,为程序的维护以及扩展提供了便利
通过继承创建的新类称为“子类”或“派生类”。被继承的类称为“父类”、“基类”或“超类”。继承的过程,就是从一般到特殊的过程。在考虑使用继承时,有一点需要注意,那就是两个类之间一定要有关系,并且这个关系应该是“属于”(is a)关系。例如,Student 是一个人,Teacher 也是一个人,因此这两个类都可以继承 Person
3.多态性:是指在父类中定义的属性或方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或方法在父类及其各个子类中具有不同的语义。
例如:“动物 Animal”的“吃 eat”方法,“猫 Cat”和“狗 Dog”都是“动物 Animal”的子类,但是它们的“吃 eat”方法功能不同。
三、类和对象
1.在Java程序中类和对象是最基本、最重要的单元。类表示某类群体的一些基本特征抽象,对象表示一个个具体的事物。类是对象的模板,对象是类的实例(建筑图纸为类,建筑物为对象)。对象是根据类创建的,一个类可以对应多个对象
2.类的定义:创建对象的前提是需要定义一个类(盖房子需要设计图纸),类是Java中一个重要的引用数据类型,也是组成Java程序的基本要素,所有的Java程序都是基于类的
类是对象的抽象,用于描述一组对象的共同特征和行为。类中可以定义成员变量和方法,其中,成员变量用于描述对象的特征,成员变量也称为对象的属性;成员方法用于描述对象的行为,可简称为方法
类定义格式如下:
class 类名{
成员变量;
成员方法;
}
根据上述格式定义一个学生类,成员变量包括姓名(name)、年龄(age)、性别(sex);
成员方法包括读书read()。学生类定义的示例代码如下:
class student {
String name; //定义String类型的变量name
int age; //定义int类型的变量age
String sex; //定义String类型的变量sex
//定义raed方法
void read() {
System.out.println("大家好,我是" + name + ",我在看书!");
}
}
在Java中,定义在类中的变量称为成员变量,定义在方法中的称为局部变量;在某一个方法中局部变量与成员变量可以同名
class student {
int age = 30; //类中定义的变量称为成员变量
void read() {
int age = 50; //方法内部定义的变量称为局部变量
System.out.println("大家好,我" + age + "岁了!");
}
}
3.对象的创建与使用:

在 Java 程序中可以使用 new 关键字来创建对象。格式如下:
格式:类名 对象名 = new 类名();
例如:Person p = new Person();
上面的代码中,“new Person()”用于创建 Person 类的一个实例对象,“Person p”则是声明
了一个 Person 类型的变量 p。中间的等号用于将 Person 对象在内存中的地址赋值给变量 p,这样
变量 p 便持有了对象的引用。在内存中变量 p 和对象之间的引用关系如右图所示。

你会发现:刚才的 Person 类源文件定义,但是不能单独运行。因为它没有 main()这个主函
数。我们创建一个 PersonTest 类中添加上 main 方法,代码如下:
class Person {
int age; // 定义 int 类型的变量 age
// 定义 speak() 方法
void speak() {
System.out.println("大家好,我今年" + age + "岁!");
}
}
class PersonTest {
public static void main(String[] args) {
Person p = new Person();
p.speak();
}
}
在实例化对象时 ,Java 虚拟机会自动为成员变量进行初始化,针对不同类型的成员变量,J
ava 虚拟机会赋予不同的初始值,如下表所示:

当对象被实例化后,在程序中可以通过对象的引用变量来访问该对象的成员。需要注意的是,
当没有任何变量引用这个对象时,它将成为垃圾对象,不能再被使用。
4. 类和对象的关系
【举例】小汽车和汽车类


小汽车有哪些属性和行为呢?属性:颜色、乘坐人数;行为:运行、跑。
c1 车:绿色,5 座
c2 车:黑色,7 座
生产汽车得有图纸吧?图纸就是描述小汽车这类事物的,也就是描述汽车类的。用 Java 语言对现实生活中的事物进行描述,是通过类的形式来体现的。怎么描述呢?对于事物的描述通常只关注两个方面:属性 和 行为。只要明确该事物的属性和行为并定义在类中即可。对象是指某一个具体的东西,是一个实实在在存在的个体。类呢?类是对这一类具体东西的共同属性和方法进行提取,抽象出来的模板。
class Car {
String color; // 颜色
int num; // 乘坐人数
void run() {
System.out.println("颜色是" + color + ", 可乘坐" + num + "人");
}
public static void main(String[] args) {
Car c1 = new Car();
c1.color = "green";
c1.num = 5;
c1.run();
Car c2 = new Car();
c2.color = "black";
c2.num = 7;
c2.run();
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战