Java语言中的修饰符
来源:互联网 发布:怎么查找sql服务器列表 编辑:程序博客网 时间:2024/06/05 09:26
1、访问控制修饰符
公开级别:用public修饰,对外公开。
受保护级别:用protected修饰,向子类及同一个包中的类公开。
默认级别:没有访问修饰符,向同一个包中的类公开。
私有级别:用private修饰,只有类本身可以访问,不对外公开。
成员变量、成员方法、构造方法可以处于4个访问级别中的一个(局部变量只能在方法内部被访问,不能用public,protected,private修饰)。顶层类可以处于公开或默认级别,因此顶层类不可以用private和protected修饰。
2、abstract修饰符
abstract可以修饰类和成员方法
语法规则:
●抽象类中可以没有抽象方法,但是包含了抽象方法的类必须被定义为抽象类。
●没有抽象构造方法,也没有抽象静态方法。
●抽象类可以有非抽象的构造方法,在创建子类的实例时可以调用这些构造方法。
abstract class Base{}
class Sub extends Base{
public static void main(String [] args){
Base base1=new Base();//非法,编译出错,不能创建抽象类Base的实例
Base base2=new Sub();//合法,可以创建具体类Sub的实例
}
}
●抽象类及抽象方法不能被final修饰符。abstract修饰符不能和final连用
3、final修饰符
final修饰非抽象类、费抽象方法和变量
●用final修饰的类不能被继承
●用final修饰的方法不能被覆盖
●用final修饰的变量只能被赋一次值
final不能用来修饰构造方法
4、static修饰符
修饰类的成员变量,成员方法和代码块
●用static修饰的成员变量表示静态变量,可以直接通过类名来访问
●用static修饰的成员方法表示静态方法,可以直接通过类名来访问
静态方法中不能用this关键字,也不能直接访问所属类的实例变量和实例方法(必须通过对象引用来访问),但是可以直接访问所属类的静态变量和静态方法,静态方法中也不能使用super关键字
●用static修饰的程序代码块表示静态代码块,当虚拟机加载类的时候就会执行该代码块
被static修饰的成员变量,成员方法被所有实例共享
package vote;import java.util.HashSet;import java.util.Set;public class Voter { public static final int MAX_COUNT = 100;// 最大投票数 public static int count;// 投票数 public static Set<Voter> voters = new HashSet<Voter>();// 已投票的选民 public String name; public Voter(String name) { this.name = name; } // 投票 public void voterFor() { if (count == MAX_COUNT) { System.out.println("投票已结束"); return; } if (voters.contains(this)) { System.out.println("已经投过票,不能再投了"); } else { count++; voters.add(this); System.out.println(name + "感谢你的投票"); } } public static void printVoteResult() { System.out.println("当前投票数:" + count); System.out.println("以下选民参与了投票:"); for (Voter voter : voters) { System.out.println(voter.name); } } public static void main(String[] args) { Voter voter1 = new Voter("Tom"); Voter voter2 = new Voter("Mike"); Voter voter3 = new Voter("Jack"); voter1.voterFor(); voter2.voterFor(); voter3.voterFor(); Voter.printVoteResult(); }}
输出结果:
Tom感谢你的投票
Mike感谢你的投票
Jack感谢你的投票
当前投票数:3
以下选民参与了投票:
Tom
Mike
Jack
注:static和abstract不能一起使用
程序入口main()方法被定义为static方法,可以使java虚拟机只要加载了main()方法所属的类,就能执行main()方法,而无须先创建这个类的实例
- Java语言中的修饰符
- Java语言中的修饰符
- Java语言中的修饰符
- Java语言中的修饰符
- Java语言中的修饰符
- Java语言中的修饰符列表
- Java语言中的修饰符列表
- Java语言中的访问修饰符
- Java语言中的修饰符列表
- Java语言中的访问修饰符
- java中的修饰符
- java中的修饰符
- Java中的修饰符
- Java中的修饰符
- Java中的修饰符
- Java中的修饰符
- Java中的修饰符
- JAVA中的修饰符
- 目标检测 Faster R-CNN运行及实时性DEMO测试
- kubernetes 集群的安装部署
- SVN中的基本操作
- 第十四周项目3
- GreenDao总结
- Java语言中的修饰符
- JSONObject将Json转换成对象时无法转换json数据字段
- 概念-心跳
- bitbake 编译错误集
- 机器学习必知的15大框架
- 第十三周 【项目3
- 深入浅出JVM
- 机器学习新手们 我这有本秘笈要不要?
- 10个成功的工程简历提示---凯利讯半导体