Java基础知识关键字

时间:2021-10-01 20:01:19

Java基础知识关键字

定义:一些已经赋予了指定含义的词语

根类相关:public private protected  class interface implements extends import package abstract

根方法函数/属性相关:void return static final

八大基本数据类型:int short byte long char boolean double float

循环判断:for switch do while break continue if case

异常:try catch throw throws finally

其他:this super

goto(保留字)

一、先来分析权限修饰符

建立如下结构进行实验

Java基础知识关键字

1.public:整个工程随意访问,不管是跨类还是跨包

package text1;
public class People {
public String name;
public void eat(){}
}

package text2;
import text1.People;
public class Man {
public static void main(String[] args) {
People people = new People();
people.name = " ";
people.eat();
}
}

在包text1中定义了公有属性name和方法eat,看到在包text2中可以被访问调用,可以看出public的访问权限是非常大的

2.protected:同一个包下的类可以随意访问,跨包不行(跨包继承是可以继承到受保护的属性或者方法)


package text1;
public class People {
public String name;
protected String sex;
public void eat(){}
protected void drink(){}
}

People中定义protected属性sex和方法drink

package text2;
import text1.People;
public class Man {
public static void main(String[] args) {
People people = new People();
people.name = " ";
people.eat();
people.<del>sex</del> = " ";
people.<del>drink</del>();
}
}

可以看到在Man中不能调用了,对于被protected修饰的属性和方法,还有一种方式访问

package text2;
import text1.People;
public class Woman extends People{
public static void main(String[] args) {
Woman people = new Woman();
people.name = " ";
people.eat();
people.sex= " ";
people.drink();
}
}
定义子类Woman继承父类People,就可以用子类实例调用到父类的protected属性和方法了。

3.默认不写:同一个包下的类可以随意访问,跨包不行


package text1;
public class People {
int age;
void play(){}
}
<pre class="java" name="code">package text2;import text1.People;public class Woman extends People{public static void main(String[] args) {Woman people = new Woman();people.<del>age</del> = 18;people.<del>play</del>();}}

挎包继承也不可以访问默认修饰的属性和方法

package text1;
public class Student {
public static void main(String[] args) {
People people = new People();
people.age = 18;
people.play();
}
}

同一包下的其他类可以访问到默认属性和方法

4.private:仅限于当前类自己可以访问,其他类拥有对象也无法访问私有属性/方法


package text1;

public class People {


private String address;

private void sleep(){}
public static void main(String[] args) {
People people = new People();
people.address = " ";
people.sleep();
}
}

package text1;
public class Student {

public static void main(String[] args) {
People people = new People();
people.<del>address</del> = " ";
people.<del>sleep</del>();
}
}

同包其他类调用私有属性和方法报错。

总结一个表:

访问修饰符:public protected默认private四种类型访问权限

  当前类 当前包 子类 外部包
public ok ok ok ok
protected ok ok ok
默认 ok ok    
private ok      

另外四大修饰符修饰的范围:方法、属性、类

类只能用public和默认不写来修饰

二、关键字命名

swith(){//int/short/ StringJDK1.7版本以前不能用) 枚举类型

case **:break;

}

 

三、this\super的区别

this:当前类的对象

super:父类的对象

 

普通方法和属性调用:this.方法名(),this.属性名

  this();

  super.方法名(),super.属性

  super();

  

注意:1.this()super()必须出现在第一行

2.方法重写,如果要对父类的方法进行补充,则需要调用super.父类方法名()方法定义

 

 

四、final(最终的,最后的)

可以用来修饰:类、方法、属性、参数、局部变量

修饰类:当前类不能被继承

方法:当前方法不能被重写

属性:代表当前属性只能被赋值一次(常量)

参数/局部变量:代表当前参数在生命周期范围内不能重新赋值

 

五、static(静态的)

可以用来修饰:方法、属性、静态块

 

注意一点:静态方法中一定不能直接使用非静态属性或者方法