Java基础之面向对象(四)——修饰词

来源:互联网 发布:cms系统是什么 编辑:程序博客网 时间:2024/05/02 04:25
一、访问修饰词
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
0 0
原创粉丝点击