Java基础(八)封装和继承
本章内容
1.面向对象的三大特性
2.会使用java中的包组织类
3.掌握访问修饰符,理解访问权限
4.static关键字,代码执行的顺序
5.继承
1.面向对象三大特性-封装
封装、继承、多态,抽象(有时候也被归为特性)。
1.理解封装的作用
<案例:不合理赋值 年龄设定为了负数…>
因为属性是公开访问的 所以可能会出现不合理赋值。
为了解决此问题,我们将属性(类的信息),进行封装
不允许外部直接访问,我们自己提供一个方法给外部让其访问
2.会使用封装
1.属性私有化 以private访问修饰符 修饰
2.提供公共的访问方法(getter/setter方法)
public void setXXX(XXX xx){
}
public xxx getXXX(){
}
2.会使用Java中包 组织 类
-
包名必须小写,规范:公司域名的倒序。
-
声明当前类所在的包地址:
- package声明 必须写在有效代码行(除去注释)的第一行。
- 如果要使用不同包的类要进行导入包:写在类声明上方 package声明下方
import 包路径/全类名/全限定名;
-
import java.util.*; 表示导入java.util包下的所有类
-
Ctrl+Shift+O 自动导包
-
java.lang包下的类 不需要导包。
-
如果在同一个包中 使用到了不同包中的两个同名类 那么必然有一个需要全类名写法
示例:cn.bdqn.demo1.Student stu1 = new cn.bdqn.demo1.Student();
Android:区分不同的程序
**1.包名 域名:网址->网页的地址 **
- com.tencent.tim
- com.taobao.xxx
2.签名
- 唯一
3.掌握访问修饰符,理解访问权限
- private -> 私有的 只能在本类中访问 红色方块
- 默认(default) -> 默认的 只能在本类中或者同包中访问 蓝色三角
- protected(受保护的) -> 本类中或者同包中或者不同包的子类中 黄色
- public -> 公共的 任意的地方 绿色圆点
4.static(静态)关键字
- 被static修饰的方法 如果调用其他的方法(同一个类中) 必须创建对象
- 被static修饰的东西 是属于类的,随着类的加载而加载。
- 非static修饰的 是属于对象的。
成员变量/实例(对象)变量:
[加载顺序]
1.静态代码块:
类加载的时候 就开始执行了!(只会执行一次)
2.非静态代码块:
每一次创建对象的时候会执行!
3.构造方法
每一次创建对象会执行,在非静态代码块之后
被static修饰的成员,可以直接通过类名调用。
因为static修饰的属于类。
为了节省空间:因为如果定义为实例常量,那么每个对象空间 都会占用一块空间来存储,所以这时候我们可以将其定义为静态常量,供所有对象来访问使用。
static final xxx
5.继承
优点:代码复用
继承使用extends关键字。
Java中的继承只能是单继承(你只能有一个亲爹)
父类的所有东西都会被子类继承吗?
父类非私有的成员才会被子类继承!
只有public和protected修饰的才能被子类继承(无论是否在一个包)。
而如果是默认修饰的 只能在同包中时才能被继承。
子类在创建对象的时候,会先调用父类的构造方法。
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****
****