JavaSE(面向对象及第一个类)

本文介绍了面向过程与面向对象两种编程思想的区别,详细解释了代码复用的重要性,并通过具体示例展示了如何在Java中构建和使用类,即面向对象编程的基本单位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向过程和面向对象

C语言编程思想都是面向过程:解决问题需要哪些过程,并将过程进一步细分,形成一个一个功能函数,通过组合、协调这些函数,最终实现这个解决问题的过程。

java面向对象:问题本身由哪些部件(对象)组成,这些部件本身有哪些属性(成员)和操作(方法)。部件和部件之间有什么内在联系,以及部件是如何联系起来的,最终也能实现应用目的。

代码复用

在介绍之前,先了解一下公司从开公司到完成第一个项目所需要的成本,公司从有到无,虽然硬件成本表面上很多,但实际上这些都是一次性消费,长期使用。唯独技术人员的工资是伴随项目实现周期不断发放的,那么不难理解当项目所需时间长了之后,其成本必然升高,所带来的利润也就随之下降了。为了做到缩减项目周期,代码复用思想顺应而生。
代码复用也就是面向对象编程的终极目标

完整的工具

函数是面向过程程序设计语言提供给软件开发的工具,用已有函数可以提升编程效率,但是函数也有局限性,单纯函数不能有效表达“一个完整的工具”
“完整的工具”应该包含两个要素:数据和操作
将工具的数据和对数据的操作捆绑、封装在一起,就是面向对象程序设计思想的出发点。
先在语法层面上学习,如何构建一个“完整的工具”——类

第一个类

class SimplePoint{
	int row;
	int col;

	void printPoint() {
		System.out.println("(" + row + ", " + col + ")");
	}

	void moveTo(int newRow, int newCol) {
		row = newRow;
		col = newCol;
	}
}

对以上程序解析:
row和col是类SimplePoint的两个成员(成员原本是结构体的名词,在此处依然适用)
printPoint()和moveT()也是类SimplePoint的两个成员(函数成员)(在java中称此为方法
注:在类的方法中可以直接引用类的成员

通过这种方法,做到了把数据(成员)和操作(方法)都装入到工具中了。

引用第一个类

class DemoSimplePoint{
	public static void main(String[] args) {
		SimplePoint pointOne = new SimplePoint();
		pointOne.row = 3;
		pointOne.col = 4;
		pointOne.printPoint();

		pointOne.moveTo(13, 2);
		pointOne.printPoint();
	}
}

首先,DemoSimplePoint仍然是一个类,但是没有定义任何成员,切方法也只有一个:主函数
程序解析:
SimplePoint pointOne = new SimplePoint(); 利用这种方法才能产生一个类的实例。(类的实例在java中成为对象

多个类的编译

经过上面的操作,我们已经拥有了两个.java文件,按理说我们应该一个一个编译出共两个.class文件,但是实际我们直接编译
DemoSimplePoint.java就会发现java直接将SimplePoint也一并编译,相当于编译一次出现两个.class文件。
其原因是我们在DemoSimplePoint.java中的SimplePoint pointOne = new SimplePoint();
SimplePoint是一个类名称,在编译时先在自己的内部类库中查找是否存在这个类,若没有找到,说明这个类是由用户提供的,因为我们之前讲到主文件名就是类名,实际是为了方便java在当前目录下查找这个类并且自动编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

魔幻音

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

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

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

打赏作者

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

抵扣说明:

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

余额充值