JAVA Getting Started Tutorial | Chapter 4 Modifiers
黄舟
Release: 2017-02-25 09:54:03
Original
1225 people have browsed it
Java language provides many modifiers, mainly divided into the following two categories:
Access modifier
Non-access Modifier
Example
public class className {
// ...}private boolean myFlag;static final double weeks = 9.5;protected static final int BOXWIDTH = 42;
public static void main(String[] arguments) { // 方法体}
public class InstanceCounter {
private static int numInstances = 0;
protected static int getCount() {
return numInstances;
} private static void addInstance() {
numInstances++;
}
InstanceCounter() {
InstanceCounter.addInstance();
} public static void main(String[] arguments) {
System.out.println("Starting with " +
InstanceCounter.getCount() + " instances");
for (int i = 0; i < 500; ++i){
new InstanceCounter();
}
System.out.println("Created " +
InstanceCounter.getCount() + " instances");
}
}
Copy after login
运行结果
Started with 0 instances
Created 500 instances
Copy after login
Copy after login
———————
final 修饰符
1.final 变量
final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。
final 修饰符通常和 static 修饰符一起使用来创建类常量。
public class TestABC{
final int value = 10; // 下面是声明常量的实例
public static final int BOXWIDTH = 6;
static final String TITLE = "Manager";
public void changeValue(){
value = 12; //将输出一个错误
}
}
Copy after login
Copy after login
2.final 方法
类中的 final 方法可以被子类继承,但是不能被子类修改。
声明 final 方法的主要目的是防止该方法的内容被修改。
public class TestABC{ public final void changeName(){ // 方法体
}
}
Copy after login
3.final 类
final 类不能被继承,没有类能够继承 final 类的任何特性。
public final class TestABC { // 类体}
Copy after login
Copy after login
———————
abstract 修饰符
抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。 一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。 抽象类可以包含抽象方法和非抽象方法。
abstract class Caravan{
private double price;
private String model;
private String year;
public abstract void goFast(); //抽象方法
public abstract void changeColor();
}
public class MyRunnable implements Runnable{
private volatile boolean active = false; public void run()
{
active = true; while (active) // 第一行
{ // 代码
}
} public void stop()
{
active = false; // 第二行
}
}
抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。 抽象方法不能被声明成 final 和 static。 任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。 如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。 抽象方法的声明以分号结尾. 例如:
public abstract sample();。
Copy after login
Copy after login
public abstract class SuperClass{
abstract void m(); //抽象方法}class SubClass extends SuperClass{
//实现抽象方法
void m(){
.........
}
}
Copy after login
Copy after login
本章节中我们学习了 Java的修饰符,下一章节中我们将介绍 Java的运算符。
Java语言提供了很多修饰符,主要分为以下两类:
访问修饰符
非访问修饰符
例子
public class className {
// ...}private boolean myFlag;
static final double weeks = 9.5;
protected static final int BOXWIDTH = 42;
public static void main(String[] arguments) { // 方法体}
public class InstanceCounter {
private static int numInstances = 0;
protected static int getCount() {
return numInstances;
}
private static void addInstance() {
numInstances++;
}
InstanceCounter() {
InstanceCounter.addInstance();
} public static void main(String[] arguments) {
System.out.println("Starting with " +
InstanceCounter.getCount() + " instances");
for (int i = 0; i < 500; ++i){
new InstanceCounter();
}
System.out.println("Created " +
InstanceCounter.getCount() + " instances");
}
}
Copy after login
运行结果
Started with 0 instances
Created 500 instances
Copy after login
Copy after login
———————
final 修饰符
1.final 变量
final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 final 对象的引用不能改变,但是里面的值可以改变。
final 修饰符通常和 static 修饰符一起使用来创建类常量。
public class TestABC{
final int value = 10; // 下面是声明常量的实例
public static final int BOXWIDTH = 6;
static final String TITLE = "Manager";
public void changeValue(){
value = 12; //将输出一个错误
}
}
Copy after login
Copy after login
2.final 方法
类中的 final 方法可以被子类继承,但是不能被子类修改。
声明 final 方法的主要目的是防止该方法的内容被修改。
public class TestABC{
public final void changeName(){ // 方法体
}
}
Copy after login
3.final 类
final 类不能被继承,没有类能够继承 final 类的任何特性。
public final class TestABC { // 类体}
Copy after login
Copy after login
———————
abstract 修饰符
抽象类: 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。 一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。 抽象类可以包含抽象方法和非抽象方法。
abstract class Caravan{
private double price;
private String model;
private String year;
public abstract void goFast(); //抽象方法
public abstract void changeColor();
}
public class MyRunnable implements Runnable{
private volatile boolean active = false; public void run()
{
active = true; while (active) // 第一行
{ // 代码
}
} public void stop()
{
active = false; // 第二行
}
}
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn