JAVA_SE第五章 程序包和静态修饰符static

十二、程序包:组织类和接口

(一)包名都小写。同一个项目下不允许出现同名的包。下一级包下的命名为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将类成员的可见度分为以下四类。

访问修饰符

本类

同包(子类和无关项)

不同包下(子类)

不同包下(无关类)

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 代码块 {

       初始化类

}

}

(四)  静态快,构造块,局部代码块作用

静态块在类加载时自动执行,静态块优先构造块;

构造块在类中对对象进行初始化;

局部代码块定义在方法中,作用在于限制局部变量的使用范围和生命周期。       

猜你喜欢

转载自blog.csdn.net/gegeyanxin/article/details/80545949