Java基础知识关键字

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(保留字)

一、先来分析权限修饰符

建立如下结构进行实验

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四种类型访问权限

 当前类当前包子类外部包
publicokokokok
protectedokokok
默认okok  
privateok   

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

类只能用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(静态的)

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

 

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










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值