一、访问修饰词
1、在我们写出的代码中,所有代码都需要有访问控制,这样可以提高代码安全性
2、Java为我们提供了4个访问修饰词public、protect、default、private
(1)public——公共的,最高的访问级别,被public修饰的类、方法、属性可以被所有成员访问。
(2)protected——保护的,能被同包的类以及其子类(包括其他包的子类)访问
(3)[default]——友好的,能被同包的类访问,没有修饰词直接不写
(4)private——私有的,只能被本类访问
3、值得一说的是private,初学者都一个疑问,那就是为什么会这种只能被本类访问的修饰词语出现。
下面举个列子

//定义一个人的类
public class Person{
	//属性,定义为私有,private一般会和setter/getter连着用,用来对限制的属性做出限制
 	private String name;
	//对取得用户名的权限做出限制
	public String getName(Boolean isAdmin) {
		if(isAdmin){
			return name;
		}
	}
	//对设置用户名的格式做出限制
	public void setName(String name) {
		if(name==null|name=="")
			return;
		this.name = name;
	} 
}
//我们在对name进行操作的时候就可以使用getName()和setName()这个两个方法,而不是直接访问name,这提高了代码的安全性。


二、抽象(abstract)


1、抽象可以用来修饰类和方法


2、被抽象的类是不能被实例化的抽象类,也就是无法创建他的对象。


3、被抽象的方法是抽象方法,抽象没有方法体。


4、抽象类和抽象方法一般用在父类中,这个类一般被子类继承,他的方法也一定由子类重写。也就是说,父类中有抽象方法,那么子类就必须重载这个方法。


5、抽象类中可以有普通方法,但是抽象方法必须存在抽象类中。


//父类
pubic abstract class Animal{
	String name;
	//抽象方法,必须存在于抽象类中
	public abstract void eat(String food);
	//普遍方法,抽象类中可以有普通方法,
	public void drink(){
		System.out.println("Drink water!");
	}
}
//子类
public clss Cat extends Animal{
	//抽象方法一定会被子类重写,普通方法直接被继承了
	@Override //@Override重写表识
	public void eat(Sring food){
		System.out.println("我喜欢吃"+food);
	}
}


三、final(终态)


1、final就是不可改变,他可以修饰非抽象类,非抽象方法和变量。


2、final修饰的类,将不再能被继承。


3、final修饰的方法,将不再能被子类重写。


4、final修饰的变量必须赋值,且不能再改变。也就是成为我们常说的常量。


一般来说,被final修饰的属性(也就是常量)都会全部大写


pubic final int FLAG=1;


四、static(静态)


1、static可以用来修饰类的属性,方法,代码块。


2、当类和方法被修饰后,他们就属于这个类,而不是再是对象了。我们可以通过类.属性名,类.方法()来调用他们。


3、被static修饰的代码块会在这个类加载的时候执行。


public class Test{
	static{
		System.out.println("我是代码块!");
	}
	//定义一个静态的属性和方法,代码块
	public static String str="我是静态属性!";
	public static void say(){
		System.out.println("我是静态方法!");
	} 
}
//
public class Main{
	public static void Main(String[] args){
		Test.str;
		Test.say;
	}
}


注意:

1.被static修饰的变量将在整个程序中只有一份。

2.被static修饰的方法不需要通过所属类的实例(对象)来调用,所以在静态方法中,不能使用this,也不能访问此类的非静态方法与非静态变量。


五、


修饰类,只能使用public,abstract,final


修饰方法,可以使用public,protected,(default),private、static


修饰属性,可以使用public,protected,(default),private

、static