关键字解析

关键字
定义:电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量

特点:Java的关键字对Java的编译器有特殊的意义
他们用来表示一种数据类型,或者表示程序的结构等
关键字不能用作变量名、方法名、类名、包名和参数。

目前共有50多个关键字,其中“const”和“goto”并无具体含义

关键字列表

基本数据类型:int char long short byte double float boolean 
程序结构:循环结构(while do for)
                  判断结构(if  else switch casebreak return continue
访问权限:public protected private default
类定义: package class import interface 
继承:extends implements 
函数定义:void
修饰:static final abstract 
其它:try catch finally  throw throws synchronsized  this  super  enmu const goto等等。

下面列举部分关键字的意义:
1、访问权限:
public:同一个工程下面的任何一个类都可以直接访问
protected:同一个工程下的同一个包可以互相访问、不同包的子类可以访问(不同包类可以继承到受保护的属性)
default:同一个工程下的同一个包可以互相访问
private:只能是自己的类可以访问

修饰:属性、方法、类
修饰类:只能是public和缺省
修饰构造函数:private 只能当前自己类构造对象
protected、default 只能同一个包下构造对象
public 当前工程下随意构造对象

2、this super
this 当前类的对象
super 父类对象

调用当前或者父类的函数、属性、构造方法
格式:
调用属性:this.属性名 super.属性
调用普通方法:this.方法名(参数); super.方法名(参数);
调用构造方法:this(参数); super(参数); 必须在第一行

子类构造函数会默认调用父类构造函数:为了初始化父类的属性和方法,提供给子类实用

public class Intex {  //定义一个父类
    public void ini() {
        System.out.println("张三");
    }

}

public class ExtendInt extends Intex {  //子类继承父类
    public void ini() {
        System.out.println("李四");
    }

    public static void main(String[] args) {
        ExtendInt ei = new ExtendInt();
        ei.sete();  
    }

    public void sete() {
        super.ini();  //此时调用的为父类的ini方法,当super换成this时,则打印的为李四
    }
}

3、final 最终的
修饰:类、方法、属性、参数、局部变量
修饰类:类不能被继承
修饰方法:当前方法不能被重写
修饰属性:代表当前属性的值不能再被标记(赋值)
修饰参数、局部变量:在参数的函数方法体中,不能再被标记

public final class Intex { // 修饰类此类不能被继承
    public final int age = 10; // 修饰属性,属性则无法再次被赋值
    public final String name; // 修饰属性时,还可利用构造方法
    public Intex(String name) {//构造方法,可以保持属性的灵活性
        this.name = name;
    }
    public final void ini() { // 修饰方法,则次方法不能被重写
        System.out.println("张三");
    }
}

4、static 静态的
修饰:方法 属性
特点:加载类的时候,直接加载静态属性和方法到内存静态空间
修饰方法:方法中必须实用静态的属性

public class Intex {
    static String name; //定义静态的属性
    public static void ini() {  //静态的方法
        System.out.println(name + "在学校");
    }
}

//在另一个类中调用
public class ExtendInt {
    public static void main(String agr[]) {
        Intex.name = "王五";  //由于是静态的属性,则无需构建对象
        Intex.ini();  //方法亦然
    }
}

**静态块 : static{} , 当运行这个类时,首先运行且只运行一次
方法块:{} ,当调用对象时,首先运行**

public class Intex {
    static int age = 10;
    static {  //静态块
        age++;
        System.out.println(1); //此处记录代码的运行步聚
    }
    {  //方法块
        age++;
        System.out.println(2);
    }
    public Intex() {  //构造方法
        age++;
        System.out.println(3);
    }
    public static void ini1() {
        age++;
        System.out.println(4);
    }
    public void ini2() {
        age++;
        System.out.println(5);
    }
}
//调用上述的方法
public class ExtendInt {
    public static void main(String agr[]) {
        Intex tea = new Intex();
        Intex tea1 = new Intex();

        Intex.ini1();
        tea.ini1();
        tea1.ini1();

        tea.ini2();
        tea1.ini2();

        System.out.println(Intex.age);
        System.out.println(tea.age);
        System.out.println(tea1.age);
    }
}

上述代码运行布聚为:1 2 3 2 3 4 4 4 5 5;而最后输出结果都为:20
由此得出,静态块里面的方法最先运行,并且只运行一次,之后构造参数时运行方法块里的方法,其次是构造方法必然运行,最后普通方法在调用的时候运行。

**5、**break return continue
break:跳出当前层循环
return :结束当前方法
continue:执行下一次循环

如此
以上为部分关键字解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值