封装的步骤
1.修改属性的可见性(设为private) 作用:隐藏对象
2.创建getter/setter方法(设为public用于属性的读写) 作用:留出接口
3.在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)作用:留出接口
包
作用:
1.管理Java文件
2.解决同名文件冲突
定义包
语法:
package 包名;
注意:
1.必须放在Java源文件中的第一行
2.一个Java源文件中只能有一个package语句
3.包名全部英文小写
4.命名方式:域名倒序+模块+功能
例:package com.imooc.animal;
导入包
语法:
import 包名.类名;
例:
导入包中全部类:
import com.imooc.*;
导入包中指定类:
import com.imooc.animal.Cat;
static
1.static+属性 //静态属性、类属性
2.static+方法 //静态方法、类方法
3.static+类 //不存在静态类,也就是不能这样做
4.static+方法内局部变量 // 不存在方法中的静态局部变量
5.static+代码块 //静态代码块
注意问题:
1.静态成员的生命周期
类加载时产生,销毁时释放,生命周期长
2.静态方法中的成员调用
只能访问静态成员,如果一定要访问静态成员只能通过在方法中进行对象实例化后访问
3.各种代码块执行顺序
静态代码块最先执行且只执行一次,构造代码块在每次对象构造的时候调用(可以执行多次且先于普通代码块执行)
类之间关联的三种方案
以学生类和专业类之间相互关联为例
方案一:
在方法中添加两个参数,分别表示专业名称和学制年限
优势:容易理解
弊端:参数列表长
方案二:
在方法中添加1个专业对象作为参数,通过其属性获得相关信息
优势:更加简单,获取参数方便
方案三:
在类中添加专业对象作为属性,通过其属性获得相关信息
优势:关联性更强(专业信息成为学生信息中的一部分)