【Java】面向对象编程 面向对象基础

news/2024/11/13 3:41:59/

一、面向对象基础

面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法。

现实世界中,我们定义了“人”这种抽象概念,而具体的人则是“小明”、“小红”、“小军”等一个个具体的人。所以,“人”可以定义为一个类(class),而具体的人则是实例(instance):

现实世界计算机模型Java代码
类 / classclass Person { }
小明实例 / mingPerson ming = new Person()
小红实例 / hongPerson hong = new Person()
小军实例 / junPerson jun = new Person()

同样的,“书”也是一种抽象的概念,所以它是类,而《Java核心技术》、《Java编程思想》、《Java学习笔记》则是实例:

现实世界计算机模型Java代码
类 / classclass Person { }
Java核心技术实例 / book1Book book1 = new Book()
Java编程思想实例 / book2Book book2= new Book()
Java学习笔记实例 / book3Book book3 = new Book()

二、class和instance

所以,只要理解了class和instance的概念,基本上就明白了什么是面向对象编程。

class是一种对象模版,它定义了如何创建实例,因此,class本身就是一种数据类型:

而instance是对象实例,instance是根据class创建的实例,可以创建多个instance,每个instance类型相同,但各自属性可能不相同:

三、定义class

在Java中,创建一个类,例如,给这个类命名为Person,就是定义一个class:

class Person {public String name;public int age;
}

一个class可以包含多个字段(field),字段用来描述一个类的特征。上面的Person类,我们定义了两个字段,一个是String类型的字段,命名为name,一个是int类型的字段,命名为age。因此,通过class,把一组数据汇集到一个对象上,实现了数据封装。

public是用来修饰字段的,它表示这个字段可以被外部访问。

我们再看另一个Book类的定义:

class Book {public String name;public String author;public String isbn;public double price;
}

请指出Book类的各个字段。

四、创建实例

定义了class,只是定义了对象模版,而要根据对象模版创建出真正的对象实例,必须用new操作符。

new操作符可以创建一个实例,然后,我们需要定义一个引用类型的变量来指向这个实例:

Person ming = new Person();

上述代码创建了一个Person类型的实例,并通过变量ming指向它。

注意区分Person ming是定义Person类型的变量ming,而new Person()是创建Person实例。

有了指向这个实例的变量,我们就可以通过这个变量来操作实例。访问实例变量可以用变量.字段,例如:

ming.name = "Xiao Ming"; // 对字段name赋值
ming.age = 12; // 对字段age赋值
System.out.println(ming.name); // 访问字段namePerson hong = new Person();
hong.name = "Xiao Hong";
hong.age = 15;

上述两个变量分别指向两个不同的实例,它们在内存中的结构如下:

在这里插入图片描述
两个instance拥有class定义的name和age字段,且各自都有一份独立的数据,互不干扰。

一个Java源文件可以包含多个类的定义,但只能定义一个public类,且public类名必须与文件名一致。如果要定义多个public类,必须拆到多个Java源文件中。


http://www.ppmy.cn/news/813995.html

相关文章

2020初网络营销成功案例

2020年互联网最成功的营销案例,要数今日头条的东家“字节跳动”最成功,而且不可复制。字节跳动的战略眼光无人能及,由于众所周知的原因,他们发现今年春节期间至少6部贺岁大片都撤档了,导致今年春节档票房几乎归零。于是…

《Delphi 4 开发大全》作者、Delphi研发团队开发工程师:史蒂夫·特谢拉(Steve Teixeira)访谈

Steve Teixeira作为“ Delphi X开发人员指南”的合著者,在Delphi社区中可能是最著名的。不过,那并不是史蒂夫唯一的“声名鹊起”。继续阅读以找出“故事的其余部分”。 史蒂夫特谢拉 杰出的《 Delphi开发人员指南》是如何产生的? 在Delphi之…

又来了!深度学习PyTorch与TensorFlow到底哪家强?

全世界只有3.14 % 的人关注了 爆炸吧知识 自从2012年深度学习再一次声名鹊起以来,许多机器学习框架都争先恐后地要成为研究人员和行业从业者的新宠。面对如些众多的选择,人们很难判断最流行的框架到底是什么。 在某些情况下,深度学习或深度迁…

Node.js下载安装及环境配置教程

一、进入官网地址下载安装包 https://nodejs.org/zh-cn/download/ 选择对应你系统的Node.js版本,这里我选择的是Windows系统、64位 二、安装程序 下载完成后,双击安装包,开始安装Node.js 这里一直点击next就可以,安装目录可以…

DL 模型组件之残差模块

文章目录 常规残差模块Bottleneck(瓶颈残差模块)参考 阅读 ResNet 的论文 Deep Residual Learning for Image Recognition,整理 ResNet 的结构。ResNet 在 PyTorch 的官方代码中共有 5 种不同深度的结构(各种网络的深度指的是“需…

少儿编程那么火,真的有用吗?有什么用?

近几年来,由于理念和技术的进步,少儿编程在中国乃至全世界带来了一股风潮。市场上各种科技公司名声鹊起,技术人才需求猛增。从人工智能、APP、云端、大数据、物联网的发展来看,未来,AI人才将成为世界的主流职业。 数字星球即将进入大家的世界,越来越多的人加入「编程」的…

疫情下的创业机会,突破迷雾,寻觅可能

商场如战场!转眼间瞬息万变! 2003年,一场突如其来的“非典”打乱了很多人的节奏。在那之前,作为全球性的购物网站ebay,根本没将新起之秀“淘宝”放在眼里,“淘宝”跟ebay的竞争,无疑于是鸡蛋碰…

库迪咖啡战瑞幸:门店数达2500家 产品用赛马机制

雷递网 雷建平 5月21日 仅仅半年时间,门店就开到2500家,这家名为库迪咖啡的新品牌声名鹊起。 库迪咖啡上来就是低价策略,采取小店模式,而且是线上点单,与初期的瑞幸咖啡策略接近。实际上,库迪咖啡与瑞幸咖啡…