目录
两个同学:
学号 | 姓名 | 性别 | 手机号 |
20171001 | 王草 | 男 | 18610022345 |
20171002 | 李花 | 女 | 13820490902 |
如何用Java代码表示这两组数据?
用代码表示的内容有什么相同之处。
问题:
类, class :用于描述一种数据类型
在Java里,通过新建 class 来描述各种自定义的数据类型。一个class可以若干基本类型的组合。
如上面的表格我们可以通过创建一个自定义类,来保存其结构对应列的数据。像这种有固定结构的数据类型,在业界称为结构数据。
动手尝试:根据类的语法,创建一个能保存刚刚表格数据的类。
”世间万物皆对象“,意思是我们生活中所能看见的一切,在Java中都可以称之为对象,比如一根笔、一个动物、太阳、手机等等。这些生活中一个个肉眼可见的物体,都可以叫做对象。
那么,类和对象又有什么关系呢?
类和对象又有什么关系呢?我们知道现实生活中所有物品(有生命的、以及没有生命的),都叫做对象。同样的,两个不同品牌的笔是两个对象(你可以把笔拟人化,类似于每个拥有自己独立的灵魂,这是两个不同的个体,所以不同的两个笔是两个对象)。那么我们可以发现,这些对象为了方便起见,都有类别,比如刚刚的两个笔是属于文具类,同样的,世间上的所有事物(对象),在现实生活中都对应有类别,这些类别把具有相同特征的不同对象分门别类,让我们能更好的区分。
那么,这些事物在java中对应对象,类别在Java中对应的是类。这便是对象和类在我们现实生活中的映照关系!?
那么,类和对象在Java中有什么关系呢?我们说”类是对象的模板“。意思是类长得像个模板(回忆模板的功能),能够将我们的对象”统一样式“。
以下面这两只狗狗为例,这两个狗狗有不同的名字,可以定义一个犬类,然后实例化每一只具体的狗狗。
同样的,类有属性和方法两个内容,继续以宠物犬这个犬类为例。
那么对应关系为:
特征——属性
行为——方法
类和对象关系的总结:
学号 | 姓名 | 性别 | 手机号 |
20171001 | 王草 | 男 | 18610022345 |
20171002 | 李花 | 女 | 13820490902 |
这是开始的那个学生信息表,对应创建一个Student类。那么对应的类和对象为:
类:类型,描述某一类事物的共性
Student是一个类型
所有的Student都有id,name,sex, cellphone这几个属性
对象:一个具体实例
s1是一个Student类型的对象,
因而,s1具有id, name, sex, cellphone这几个属性
假如有很多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 完整包名.类名;
定义:Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。
注意:不能修饰类(外部类)。
public : 对所有类可见。使用对象:类、接口、变量、方法