java——关键字以及修饰属性

1. java中的修饰属性(public,private,protect,default)

public:java中访问限制最宽的修饰符。被其修饰的类,属性以及方法不仅可以跨类访问,而且可以跨包(package)访问

private:权限限制最窄的修饰符。被其修饰的类,属性以及方法只能被该类的对象访问,子类不能访问,更不能跨包访问

protect:介于public和private之间。被其修饰的类,属性以及方法只能被类本身的方法以及子类访问,即使子类在不同的包中也可以访问

default:默认访问修饰符,只能在一个包中进行访问

 

类的访问规则
                                    同一个包中的其他类               不同包中的其他类
public修饰的类                     允许                                        允许
缺省修饰的类                       允许                                      不允许
 
属性和方法的访问规则
                                                                           同一个包中的类           不同包中的类             类内
所隶属的类被public修饰         private                                                                                        允许
                                               protected                     允许                                                        允许
                                                 缺省                           允许                                                        允许
                                                public                          允许                            允许                     允许
 
所隶属的类被缺省修饰          private                                                                                          允许
                                              protected                     允许                                                         允许
                                                缺省                           允许                                                         允许
                                               public                          允许                                                         允许
 

2. java中的关键字static

(1) static 修饰静态变量或者全局变量(编译时就开辟了空间,且只有一个,可用来做全局变量,可通过类名访问),其他的变量都叫做实例变量。

(2) static 修饰方法,表示整个类的方法,不需要创建对象来调用,可以通过类名来调用,例如Collections和Arrays(数组的操作)整个都是static修饰的方法。不是static修饰的方法必须先new一个对象,才能调用。另外,static方法中只能调用static方法。 public static void main(String[] args),main必须用static修饰。

(3) static 静态代码块,类中独立于成员变量和成员函数。用来初始化全局的变量,且只会比执行一次。

(4) 静态内部类:只能访问外部类的静态成员变量和静态方法。

 

3. java中的关键字final(终极修饰符)

(1) 修饰基本的数据类型,可以认为这些数据是常量,值是不可以再改变的

(2) 修饰其他类的对象,该数据和其指向的对象之间的绑定关系是不可更改的,而对象内部的属性是可以被更改的

(3) 被final修饰的方法是不可以被子类覆盖的,但final修饰的方法可以被子类重载(不可覆盖,可被重载),可以被继承

(4) final修饰的类不能被继承,且其中的方法也一定是final方法(默认),不会再有子类

(5) 常用作 static final,因为final指定的属性要么取值不可更改,要么绑定关系不可更改,所以加上final可以节省内存

(6) final不能修饰构造方法,因为子类默认使用父类的构造方法

Java是从C++发展而来的,C++中,一个类可以同时继承多个父类,但在java中,类只能单继承

 

4. java中的关键字finally

finally修饰的代码块一定会执行,在try和catch模块中return之前需要先执行finally。

try{}
catch(){}
catch(){}
catch(){}
finally{}
 
多个catch来进行捕获,finally中写入最终要执行的语句,无论异常是否发生,都会执行finally中的语句

 

5. java中的多态

编译时多态,编译时就确定了对具体方法体的调用,比如函数的重载(参数不同)
运行时多态,运行时才确定对具体方法的调用,继承中方法的覆盖(子类的方法覆盖掉父类的方法)
 
6. finalize()
垃圾回收器要回收对象的时候,首先就会调用这个类的finalize()方法,finalize()就相当于一个析构函数一样
纯java编写的class不需要重新覆盖这个方法,因为Object已经实现了一个默认的
不过如果C++编写的类的话,需要重新覆盖这个默认的函数
调用的三种情况
(1) 被gc回收时调用
(2) 程序退出时,每个对象调用一次finalize方法
(3) 显式地调用finalize方法
 
7. this
当前对象的一个引用
调用当前对象的属性和方法
 一个类中一个构造方法调用另一个构造方法时,使用this
方法返回当前正在讨论的对象时,可以采用return this的形式

java.lang.Object类:所有类的父类,java中所有的类都是继承于Object类
public boolean equals(Object obj):  判断两个对象一样,返回true,只有两个对象指向同一个对象时,才会返回true
public String toString(): 各个类可以根据自己的需求来覆盖该类实现字符串的输出
 
属性的隐藏:子类中出现和父类同名属性的现象,这个时候调用子类函数处理子类的属性,调用父类函数处理父类的属性
方法的覆盖:子类中定义了和父类中具有相同方法头方法的现象
 
在继承中,先调用父类的构造方法,然后调用子类的构造方法
super关键字:可以直接调用父类中被隐藏的属性和方法
super(实参): 调用父类的构造方法
super.父类属性: 调用父类的属性(非隐藏属性可以直接使用,不需要super)
 
this 和 super不能再static修饰的方法内使用
对象 instanceof 类名:判断对象是不是某个类的实例
 

 

 

 

 

 

posted @ 2017-08-26 09:01  东木刀纹  阅读(2463)  评论(0编辑  收藏  举报