十二、程序包:组织类和接口
(一)包名都小写。同一个项目下不允许出现同名的包。下一级包下的命名为package 包名[.子包]。
一般在公司里用域名反转来命名包如com.qq包下面再下一级为部门名,下一级为项目名。即域名反转.部门名.项目名。
作用: 1.文件夹的作用,管理文件;
2.解决文件名冲突的情况;
要调用别的包下的文件里的类时:
1. 将该类import进去,可只导该类,也可将该包内的全部类都导入。如要导b包下的B类。需import b.B;或import b.*;注意导入的只是b包根目录下的类,而不是包含b包下的子包里的类。
2. 在new该对象时,将包名带上。b.B ex1 = new B();//定义一个b包中B类型的对象ex1。
3. 如果本包和引用包里的类名相同,则只能用限定访问路径方式创建对象,即2的方法。
(二)Java将类成员的可见度分为以下四类。
访问修饰符
扫描二维码关注公众号,回复:
1438832 查看本文章
|
本类 |
同包(子类和无关项) |
不同包下(子类) |
不同包下(无关类) |
Private |
是 |
\ |
\ |
\ |
默认 |
是 |
是 |
\ |
\ |
Protected |
是 |
是 |
是 |
\ |
Public |
是 |
是 |
是 |
是 |
但是类只能用public和默认进行修饰,因为类访问要么是同包,要么是不同包;不同包只能访问public类型的。
类中成员四种都可以修饰。
十三、封装:隐藏类中的属性和实现细节,对外只提供公共的访问方式。
(一)好处
1. 安全性;
2. 可以使用流程控制语句对值进行限制;
3. 只能用我提供的访问形式来访问。
(一) 语法:
1. setter访问器:
public void set属性名(参数){
赋值 }
2. getter访问器:
public void get属性名(){
返回属性值
}
十四 方法重载:通常在一个类中,方法名相同,方法名相同,参数列表不同(类型,个数,顺序),与返回值无关。
(一) 作用:方便记忆;
(二) 可变参数重载:
注意:1.可变参数底层是数组,因此不能与同类型的数组重载;
2.可变参数要最后选择调用;
3. 可变参数重载,传参时,值对于多个方法的参数类型都使用编译出错。
-------------------------------------------------------------------------------
十五、static修饰符
(一) static修饰符---‘静态’,静态属性不属于对象,属于类,被所有对象所共有。可用类名直接调用,也最好用类名直接调用,最好不要用对象名.属性名。在类加载时就已经给他分配空间了。在方法区的专门的静态区存放。
(二) 实例成员变量和静态成员变量的区别:
1. 静态成员变量属于类,实例成员变量属于对象;
2. 加载类时加载静态变黄,创建对象时创建实例变量;
3. 类销毁时静态变量销毁(应用程序结束时),对象销毁时实例成员变量销毁(对象失去索引引用即p=null时);所以静态变量的生命周期长。
(三) static修饰方法:加了static以后,方法就属于类了。
*注意:
1. 静态方法只能直接访问静态成员(含静态方法和静态属性),若想访问同类其他方法,需要创建对象。
2. 静态方法不能使用本类对象this关键字。因为该静态方法不属于对象,而属于类。
也不能使用super调用父类的成员方法和成员变量。
*场合:1.不用创建对象使用;
2.共享的方法使用比较简便。
*静态方法和普通方法区别:
1.静态方法只能直接访问静态成员,实例方法都可以
2.静态方法不能用this,super,实例方法可以;
3.静态方法不用对象,用类名就可以调用,实例方法必须用对象调用。
(四)静态代码块:定义在类中,用static标识,用于初始化类。在类加载时自动执行,而且只执行一次,而不是每个对象调用时都执行。
Class类{
Static 代码块 {
初始化类
}
}
(四) 静态快,构造块,局部代码块作用
静态块在类加载时自动执行,静态块优先构造块;
构造块在类中对对象进行初始化;
局部代码块定义在方法中,作用在于限制局部变量的使用范围和生命周期。