目录
一、包
1.定义
2.命名规范
3.作用
4.关键字import和package
二、访问权限修饰符
1.public
2.protected
3.default(默认)
4.private
5.示例
三、封装
1.定义
2.具体实现
一、包
1.定义
包可以类比成一个文件夹,是一种用于组织类和接口的命名空间机制。
2.命名规范
首先包名全小写,同时和文件夹一样也存在多个级别,可以用.来区分级别。
第一级 指该项目的类型,如com,org,gov等。
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等。
第三级 指项目的名称,如:bcms,oa,erp,cms等。
第四级 指项目模块的名称,如:bean,action,exception等。
3.作用
(1)不同文件夹下可以存在相同名称的文件。同样地,不同包下也可以存在相同名称的类。所以包可以用来区别类名。后续类名一般指的是全限定类名,即包名+类名。
(2)模块化代码组织,按照不同功能来管理类。如:业务逻辑层、数据访问层。
(3)控制访问权限。
4.关键字import和package
package通常在Java 文件首行声明当前类所属的包名。
import用于导入外包类,当导入不同包的同名类时,会使用import导入单个类,或者直接用全限定名(相当于文件路径一样,直接通过包名锁定)导入。如java中util包和sql包下都有一个Date类:
import java.util.Date;public class Test {public static void main(String[] args) {//导入单个类new Date();//使用全限定名new java.sql.Date(1000);}
}
java.lang包会自动进行导入,所以该包下的类可以直接使用,如String类。
二、访问权限修饰符
访问权限修饰符总共有四个,权限由大到小分别为:public(公共权限)、protected(受保护权限)、default(默认,同包权限)、private(私有权限)。
1.public
修饰类、属性、方法。可以被任意类访问。
被public修饰的类名须与源文件名一致。(仔细观察就会发现,每次在idea里新建一个类的时候,在文件里都会自动生成用public修饰的一个与文件名相同的类。)
某些源文件里可能会有多个类,此时文件里只能有一个用public修饰的类,剩余的类只能被修饰为默认权限。
//public修饰的类public class Human {String name;String gender;String country;int age;}//默认权限修饰符修饰的类
class Man{}
项目栏的文件会在检测到自己有多个类后,自动变为多级显示。
2.protected
修饰属性、方法。可被同包类访问,不同包时,该类的子类才可以访问。
3.default(默认)
修饰类、属性、方法。只能被同包类进行访问。实际上就是不指定访问权限修饰符。
4.private
修饰属性、方法。只能在本类中进行访问。
5.示例
首先创建两个包,每个包创建两个类,如图:
其中Human中用访问权限修饰符修饰成员变量。
public class Human {public String name;protected String gender;String country;private int age;}
其余三个类主要用来对应不同情况下的访问,Test1为同包类的情况,Test为不同包类的情况,Man为不同包但为Human的子类的情况。
首先,如图,Test1中除了age,其余三个属性都能被访问到。
如图,Test中,只能访问到name。
如图,在Man中,可以访问到name和gender。需要注意的是,创建的对象是子类Man的对象,如果仍通过其父类Human的对象访问,仍然无法访问name。
有一个小细节就是在Human中在其原有的基础上对gender再加上static进行修饰。即
protected static String gender;
在Man中既可以通过Man类名访问,也可以通过Human类名访问gender。
三、封装
1.定义
封装是面向对象语言三大特征之一,属于一种信息隐藏技术。它的目的是为了隐藏类内部的实现细节。利用方法去控制外部对这些信息的操作和访问。
2.具体实现
封装实际上就是通过访问权限修饰符去实现的。在不同场景下使用访问权限修饰符去控制成员的可见性。
比如在输入密码的时候通常都会有提示:密码至少7位数,里面需包含字母,数字等。这就可以将成员变量密码去私有化 ,再定义一个公开的方法里面加上控制语句去实现控制外部对密码的操作。
适当的封装可以提高数据的安全性,有利于代码的维护和扩展等。