JAVA部分关键字分析

来源:互联网 发布:ios10优化设置 编辑:程序博客网 时间:2024/06/17 23:25

JAVA部分关键字分析

一、关键字的定义:编程语言中具有固定含义的固定单词,不能用于定义类名,变量或常量名,方法名等。(通常会有颜色区分)

二、关键字的分类:
      1)访问的权限: public、protected、private
      2)基本的数据类型:int、double、float、char、long、short、boolean、byte
      3)与类相关:class、abstract、extends、interface、implements、import等
      4)异常:try、catch、finally、throw、throws等
      5)与类对象相关的:new、this、super
      6)与循环相关的:for、while、do...while
      7)与判断相关的:if、else、else if、switch、case、default、break、continue
      8)其他:instanceof、static、final等

三、重点分析关键字
1、访问权限:用于修饰当前属性或方法的使用范围
      a)JVAV语言中的访问权限有四种(但是关键字只有三种):公有(public)、保护(protected)、默认(无关键字)、私有(private)
          访问权限从大到小分别为:公有(public)>保护(protected)>默认(无关键字)>私有(private)
      b)访问权限可以用来修饰类、属性和方法
        在定义类时:只能用public或默认不写来修饰。当一个文件中拥有多个类,则必须有一个类与文件同名,该类为文件的主类,如果有public修饰也只能修饰主类,并且只能有一个public

        在定义属性(常量或是变量)时:接口中所有的属性都必须是public。定义的完整格式:public static final 返回类型 属性名(赋值); 需要赋值。因为在接口的属性定义中所有的格式都一样,因此在一些版本的编译器中可以省略public static final,意义一样。

        在定义方法时:接口中的所有方法都必须是public,public 返回类型 方法名();
构造方法也可以修改访问权限,例如为了不让外部创建当前类的对像时,可以把当前类的构造方法的访问权限设置为private;
 当子类继承父类,子类需要重写父类的方法时,所重写的方法的访问权限只能扩大或者不变,不能缩小,公有(public)>保护(protected)>默认(无关键字)>私有(private)

访问权限当前类共同包不同包的继承不同包publicYesYesYesYesprotectedYesYesYesNo默认(不写)YesYesNoNoprivateYesNoNoNo

2、与对象相关的:new、this、super
 new:是指创建一个类的对象,类名 对象名 = new 类名();

 this:指的是当前类的对象
       a):在普通方法中使用this,指的是调用当前类的相关属性和方法,this.属性;或this.方法名();
       b):在构造方法中使用this,指的是调用当前类的其它构造方法,this();(不需要加点)要注意的是当在构造方法中使用了this();则this();必须放在构造方法的第一行
   
public class Student {public String name;public Student() {this("aa");System.out.println("构造方法1");}public Student(String n) {this(20);System.out.println("构造方法2");}public Student(int a) {System.out.println("构造方法3");}}

输出:构造方法3,构造方法2,构造方法1

 super:指的是当前类的父类的对象
       a):在普通方法中使用super,指的是调用父类的普通方法,super.方法名();
       b):在构造方法中使用super,指的是调用父类的构造方法,super();(不需要加点)
           注意:方法的重写:完全覆盖父类的方法,不加super.方法名();  对父类的方法进行改造,添加super.方法名();
                      每一个子类的构造方法都会调用一个父类的构造方法,用来初始化父类的属性
                      如果是在构造方法中调用super();则super()必须放在第一行
                      如果想要同时调用this();和super();则super()一定只能隐性定义

3、其他:instanceof、static、final等
final:是指最终的,用于修饰类、方法、属性、参数和局部变量等
          修饰类时:不能被继承的类,接口和抽象类一定不能用fianl修饰
          修饰方法时:被修饰的方法不能被子类重写
          修饰属性时:表示该属性只能被赋值一次
          修饰参数和局部变量时:表示该参数或局部变量在他们的生命周期内不能再被修改
          注意:匿名内部类使用外部类的局部变量一定要用fianl修饰

static:是指静态的,用于修饰属性,方法,静态块等
            用static修饰的属性,方法等,都是依赖于当前类而生存,脱离了类对象的束缚
            静态块:static{};加载类的时候自动执行

instanceof:作用是用于校验当前的对象转型之前的类型是什么      对象名  instanceof  所判断的类的类名      返回值是true和false
原创粉丝点击