JAVA第六天!

1 类 属性 方法 对象
2 封装 类的三大特性
3 访问修饰符

封装

属性为了安全,不被外部随意访问,所以会使用访问修饰符private修饰。

类似现实世界中的 快递包
1 private 只有在本类中可以访问
比如在People中的main方法使用Car时,不能访问Car的color属性。
在这里插入图片描述

The field Car.color is not visible
Car的color属性是不可见的

2自己创建的类是引用类型,可以做为属性存在。
在这里插入图片描述

3 一般情况下,对于model类,只需要完成属性和方法,不涉及任何业务逻辑,也就是main方法也不需要。
因此,main方法出现在负责管理和调度的相关类中。
如我们的程序,main方法只放在CarManagement中。
在这里插入图片描述

4 私有的属性无法直接访问,但是可以通过专门的set和get方法访问
像这样的方法 称之为setter,getter

4.1 set 方法
在这里插入图片描述
在这里插入图片描述
4.2 get方法
在这里插入图片描述

5 this 在set方法中代表本类的对象,翻译成”我”
this.name = name;
6 访问修饰符 权限
在这里插入图片描述

针对的修饰:类,属性,方法,接口。
针对范围:同一类内,同一包中,子类,不同类。
所以:java使用了不同类型的访问修饰符,控制权限,安全得以保障。

总结:set和get方法的调用:
在这里插入图片描述

1 创建了两个model类 People,Car
2 定义了一些属性 比如People中姓名,性别,身高,体重
Car中 车的颜色
3 创建了一个管理类CarManagement,存在一个main方法,在main中去使用People和Car这两个类(创建对象,调用方法)

Tips:eclipse提供快速生成setters和getters的方式:
1 快捷创建setters 和getters
在这里插入图片描述

2 对于一个类有多个属性,可以使用eclipse工具,一次性创建多个set和get方法
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

注意:boolean类型的getter方法的方法名为isXxx

Pm:
1 构造方法 Constructor 构造器
2 继承

1 构造方法
目的:创建对象,并完成对象的初始化initialize。

之前定义变量时,都赋予一个初始值,也称之为变量的初始化。
int age = 0;

然后针对一个对象,也需要进行初始化,毕竟对象里面有很多属性值,一般情况下,我们通过构造方法来完成对象的初始化,即完成对象中属性(成员变量)的初始化,也就是给属性以默认值。
构造方法的定义:
1 无参构造(默认构造方法)
比较特殊
在这里插入图片描述

1.1没有结果类型 方法名与类名相同
1.2调用时 放在new的后面
1.3默认构造也称为隐式构造,但是我们把无参构造写出来就会覆盖默认构造。
在这里插入图片描述
1.4调用构造,完成对象的初始化操作,即属性值给予默认值。
整型 0
小数 0.0
Boolean false
Char ‘ ‘
引用类型 null
2 有参构造
目的:无参+setter
创建对象,并且完成对象的初始化,初始化工作中对属性赋值来源于有参构造的参数。
定义:
在这里插入图片描述
调用:
在这里插入图片描述

Tips:

可以使用eclipse快速 生成 构造方法
在这里插入图片描述

额外知识: this()
构造之间也能相互调用

一个类中方法之间是可以相互之间调用的,构造方法也是方法,所以构造方法间也能相互调用,但是构造方法因为特殊,所以调用时,使用this()的方式。
在这里插入图片描述

一个构造种去调用另外一个构造,使用this关键字,必须写在第一行。

2 继承 extends
类的三大特性
张三的 儿子张小三 买 绿色的桑塔纳。
Java世界中,表示继承,存在 子类与父类。
倘若一个类中的属性和方法,在另外一个类也同样的使用,一般会考虑继承关系。

父类/超类 superclass People
子类/派生类 subclass Man
表示继承:
在这里插入图片描述

好处:父类有的,子类都会有。
2.1 子类继承父类,会继承父类非私有的属性和方法。当然子类也会有自己的属性和方法。
2.2 Object 顶级父类
默认创建的类 都继承Object,而Object存在在JDK中。
2.3 java单继承 不支持多继承,但是java通过接口实现多继承。
2.4 支持多重继承(一个类有一个父类,可以有多个子类,可以有多个孙类)
2.5 一个类可以有多个子类

总结:一个类调用一个方法,这个方法可能是在自己类中定义的,也可能是在父类中定义,也可能在父类的父类。。。中定义的。

2.6 在继承中,构造方法是不会被继承的。
2.7 在继承中,子类调用无参构造时,会先调用父类的无参构造。
在这里插入图片描述在这里插入图片描述

2.8 难点 子类的有参构造中,是可以调用父类的有参构造的。目的就是将父类的私有属性继承过来。
在这里插入图片描述

注意:构造方法的调用只存在构造方法中,调用本类的使用this(),调用父类的使用super(),且调用的代码必须在第一行。

构造方法也可以同时包含父类的属性和子类的属性:
在这里插入图片描述

Tips:
在实际的开发过程中,继承用的非常多,一般考虑使用继承的出发点是,有两个类存在相同的代码,所以,把相同的代码提取出来,变成父类。将来倘若有第三类也用到父类的代码,自己继承父类即可。
总结:继承的作用就是扩展。Extends

将来会使用第三类库,比如框架spring,要能看懂继承的结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值