【第三章-1】面向对象——类与对象基本概念

目录

1.引例

2.类class

3. 面向对象中什么是对象?

4.类和对象的关系

5.面向对象编程

6.IDEA创建类与对象

7.成员变量

8.IDEA上代码练习成员变量

9.什么是方法

10.包Package(详细参考)

11.访问修饰符

12.面向对象与面向过程


1.引例

两个同学:

学号

姓名

性别

手机号

20171001

王草

18610022345

20171002

李花

13820490902

如何Java代码表示这两组数据

用代码表示的内容有什么相同之处。

问题:

- 同样是表示姓名,为什么一个叫 name_1 一个叫 name_2 ?
- int double boolean String 都是数据类型。为什么不建一种新的类型来表示学生这种复杂的信息呢?

2.类class

, class :用于描述一种数据类型

Java里,通过新建 class 来描述各种自定义的数据类型。一个class可以若干基本类型的组合

如上面的表格我们可以通过创建一个自定义类,来保存其结构对应列的数据。像这种有固定结构的数据类型,在业界称为结构数据。

动手尝试:根据类的语法,创建一个能保存刚刚表格数据的类。

3. 面向对象中什么是对象?

”世间万物皆对象“,意思是我们生活中所能看见的一切,在Java中都可以称之为对象,比如一根笔、一个动物、太阳、手机等等。这些生活中一个个肉眼可见的物体,都可以叫做对象。

那么,类和对象又有什么关系呢?

4.类和对象的关系

  类和对象又有什么关系呢?我们知道现实生活中所有物品(有生命的、以及没有生命的),都叫做对象。同样的,两个不同品牌的笔是两个对象(你可以把笔拟人化,类似于每个拥有自己独立的灵魂,这是两个不同的个体,所以不同的两个笔是两个对象)。那么我们可以发现,这些对象为了方便起见,都有类别,比如刚刚的两个笔是属于文具类,同样的,世间上的所有事物(对象),在现实生活中都对应有类别,这些类别把具有相同特征的不同对象分门别类,让我们能更好的区分。

  那么,这些事物在java中对应对象,类别在Java中对应的是类。这便是对象和类在我们现实生活中的映照关系!?

  那么,类和对象在Java中有什么关系呢?我们说”类是对象的模板“。意思是类长得像个模板(回忆模板的功能),能够将我们的对象”统一样式“。

  以下面这两只狗狗为例,这两个狗狗有不同的名字,可以定义一个犬类,然后实例化每一只具体的狗狗。

同样的,类有属性和方法两个内容,继续以宠物犬这个犬类为例。

那么对应关系为:

特征——属性

行为——方法

类和对象关系的总结:

学号

姓名

性别

手机号

20171001

王草

18610022345

20171002

李花

13820490902

这是开始的那个学生信息表,对应创建一个Student类。那么对应的类和对象为:

类:类型,描述某一类事物的共性

Student是一个类型

所有的Student都有id,name,sex, cellphone这几个属性

对象:一个具体实例

s1是一个Student类型的对象,

因而,s1具有id, name, sex, cellphone这几个属性

5.面向对象编程

6.IDEA创建类与对象

7.成员变量

8.IDEA上代码练习成员变量

9.什么是方法

可以把具有相同功能的代码,通过“方法”封装起来。
如何通过方法来封装呢?

10.包Package(详细参考)

假如有很多Person类,有的有名字有性别,有的又只有名字,那我是不是代码删了写,写了又删?有没有办法这个同样的Person类都存在呢?那有人一激灵说这还不好说,多建几个类不就好了?而File already exists?什么意思?文件已经存在!

我们发现电脑上两个相同的文件放在一起是不是会提示是否要覆盖?那你如果不覆盖,只能改名字了。还有个方法,就是放在不同文件夹中,是不是?

同理java项目中也是可以分不同文件夹的。只不过java中类的文件夹不叫文件夹,叫“包名”

英文单词:package,那package还有个意思就是打包的意思,所以你可以理解为这个文件夹,就是打了一个包裹,就跟快递包裹似的,你买了好多东西,不同商家是不同的包裹,每个包裹放的东西是不同类别的。

java中也是这个意思,包中放的基本上都是同一类的东西。比如放汽车类,有Car,有Bus,有MiniBus,有Taxi是不是

好了,说这么多,其实就是一个文件夹而已!记住在Java中叫做包。

为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

包的作用(对类进行分类管理)

1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

创建包

Java项目中,每一个包中的文件,都要有相应的包声明

Java文件中,声明一个包需要注意

1、声明一个包使用关键字:package

2、一个类中,包的声明必须放在类中第一行

3、包名也是标识符全部都是小写,多级之间使用.隔开;一般为了避免包名       重复都是公司域名反转加项目名加模块

通过import使用包

比如你使用了某个包的所有类,你可以这样

import cn.craaaaazy.fruit.*;

如果一个类中要使用其它包中的类,而且不止使用一次,通过上面的方式就比较麻烦,应该通过导包的方式来解决问题

         导包需要使用关键字:import

         导包的位置:在包声明(package)下面,类(class)上面

         导包的格式:import 完整包名.类名; 

11.访问修饰符

定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类

default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。

   注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

12.面向对象与面向过程

  • 31
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值