Java基础修饰符

网友投稿 817 2022-05-30

1.1 权限修饰符

1.被public修饰的域和方法,不管在所属类所在的包还是在其他包,都可以被所属类或者所属类对象直接访问。

2.默认访问权限(又叫包访问权限 friendly, java语言中是没有friendly这个修饰符的,这样称呼应该是来源于c++ )修饰的域或方法,只能在所属类的包被直接访问,在其他包不能直接访问。其访问的范围就如它名称一样—包访问权限,只能在所属包内访问。

3.被protected修饰的域或方法,其直接访问的范围与包访问权限的一样,基本没有差别。

4.被private修饰的域或方法,只能在自己所属类才能被直接访问。而即使另外一个类与其同在一个包中,前者也不能直接访问。

1.2 状态修饰符

final(最终态)

static(静态)

final 关键字是最终的意思,可以修饰成员变量,成员方法,类

final修饰的特点:

1.修饰方法:表示该方法是最终方法,不能被重写

2.修饰变量:表示该变量是常量,不能被再次赋值

Java基础之修饰符

3.修饰类:表示改类是最终类,不能被继承

父类:

package ceshi; public final class Fu { public final void method() { System.out.println("Fu中method方法被调用"); } }

子类:

package ceshi; public class Zi extends Fu{ //报错了,不能被继承 public final int age = 20; public void show() { // age = 100; 被final修饰为常量无法改变 System.out.println(age); } }

变量是基本类型:final修饰的是基本类型的数据值,不能改变

变量是引用类型:final修饰的是引用类型的地址值,不能改变,但是地址里面的内容可以改变

Student类

package ceshi; public class Student { public int age = 20; }

测试类

package ceshi; public class Demo { public static void main(String[] args) { //final修饰基本类型变量 final int age =20; // age = 100; //final修饰后就不能重新赋值 System.out.println(age); //20 //final修饰引用类型变量 final Student s = new Student(); //final修饰的s,s的地址不能变,s.age是内容 s.age =100; System.out.println(s.age); //100 //反证 // s = new Student(); //报错 } }

static关键字是静态的意思,可以修饰成员变量,成员方法

static修饰的特点:

被类的所有对象共享 (这也是我们判断是否使用静态关键字的条件)

2.可以通过 类名调用(推荐使用);也可以通过对象名调用

按照有无static修饰,成员变量和方法可以分为:

(一)成员变量

1、静态成员变量(类变量):有static修饰的成员变量称为静态成员变量,也叫类变量,属于类本身,直接用类名访问即可

2,、实例成员变量:无static修饰的成员变量称为实例成员变量,属于类的每个对象的,必须用类的对象来访问

(二)成员方法

1、静态方法:有static修饰的成员方法称为静态方法,也叫类方法,属于类本身的,直接用类名访问即可

2、实例方法:无static修饰的成员方法称为实例方法,属于类的每个对象的,必须用类的对象来访问

Student类

package ceshi; public class Student { public String name; public int age; //1: public String university; //2 public static String university; public void show() { System.out.println(name+","+age+","+university); } }

测试类:

package ceshi; public class StaticDemo { public static void main(String[] args) { //2:被static修饰的变量,推荐用类名访问 Student.university="清华大学"; Student s = new Student(); s.name = "yy"; s.age = 20; //1 s.university = "清华大学"; s.show(); //yy,20,清华大学 Student s1 = new Student(); s1.name = "yy1"; s1.age = 30; s1.show(); //1: yy1,30,null //2: yy1,30,清华大学 } }

非静态的成员方法

●能访问静态的成员变量

●能访问非静态的成员变量

●能访问静态的成员方法

●能访问非静态的成员方法

静态的成员方法

●能访问静态的成员变量

●能访问静态的成员方法

总结成一句话就是:静态成员方法只能访问静态成员

Java

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为云全球案例故事2020 | 云享·书库 No.5 期推荐(文内含免费下载链接)
下一篇:快速入门网络爬虫系列 Chapter09 | JSON数据处理
相关文章