首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java面向对象初级-类与对象

类与对象

OOP(Object Oriented Programming)

例子:小明现在手头上有两本书,一本是英语书,一本是数学书,如果用程序来表达这两本书,该如何编写?

在没有引入OOP之前

通过基本变量

Stringbook1Name="英语";

intbook1Page=100;

StringbookColor="白色";

Stringbook2Name="数学";

intbook2Page=200;

StringbookColor="橙色";

//假如小明有很多本书,则.....

StringbookNName......

intbookNPage.......

StringbookNColor......

//如果使用变量来保存的话,就会产生很多基本类型的变量代码,这样非常不利于数据的管理

通过数组

String[]book1={"英语",100,"白色"};

String[]book2={"数学",200,"橙色"};

.......

//同理,如果要定义很多本书的话,我们就得利用大量的数组来代表每一本书

弊端

1、数据类型不能很好的体现

2、只能通过下标来获取信息,对变量的名字和数据的对应关系不是很清晰,不友好

3、不能增加书本的动态行为,比如翻书等动作

那么,现有的技术方案对于新的问题来说不是那么友好的时候,就诞生了面向对象这个技术。其实面向对象也不是什么高深的技术,就是为了解决新问题找到最优解,从而提出的一种新方案。

引入面向对象(OOP)以后

对象,顾名思义,就是一个具体存在的事物,它拥有自己的属性和行为。

属性:体现的是静态方面的数据

行为:表示的是动态方面的动作

如果把所有书本的共性抽取出来,那么我们就得到了一个书本类,Book。

抽取共性(属性) ------->  书本类(属性+行为) --------> 具体的书籍,英语课本,数学课本(实例)

来看一个例子

intnum1=100;

Stringcolor="白色";

Bookbook1=newBook();

Bookbook2=newBook();

通过对比以上语句,可以推出,

类:其实就是程序员自己定义的数据类型

int、String:是Java程序内置的数据类型

//定义一个书本类

classBoook() {

Stringname;

intpage;

Stringcolor;

}

publicclassTest{

publicstaticvoidmain(String[]args) {

 Bookbook1=newBook();

 book1.name="英语";

 book1.page=100;

 book1.color="白色";

 Bookbook2=newBook();

 book2.name="数学";

 book2.page=200;

 book2.color="橙色";

.....

}

}

类与对象的关系

提取书本共性   ---->  书本类(属性...)、(行为......)   ----> 具体的书本 数学、英语

提取人类共性  -----> 人类(属性....)、(行为.......) -----> 具体的人 张三、李四

注意事项

1、类创建对象有很多种说法,实例化、创建对象、类实例化

2、类可以有很多种,世界万物,都可以抽取共性成为类

类和对象在内存中的关系

当类创建对象的时候,在内存中的关系大致如图所示。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210305A0FBAA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券