1. 程式人生 > >匿名對象&final

匿名對象&final

匿名對象&final

1.1 匿名對象定義&使用
匿名對象即無名對象,直接使用new關鍵字來創建對象
1.1.1 案例代碼九:

package com.itheima_01;
/*
 * 匿名對象:沒有名字的對象
 * 匿名對象的應用場景:
 * 當方法只調用一次的時候可以使用匿名對象
 * 可以當作參數進行傳遞,但是無法在傳參之前做其他的事情
 *
 * 註意:匿名對象可以調用成員變量並賦值,但是賦值並沒有意義
 *
 */
public class AnonymousObejctDemo {
public static void main(String[] args) {
//Student s = new Student();
//s.study();
//s.study();
//s.study();
//new Student();//匿名對象,沒有變量引用的對象
//new Student().study();
//new Student().study();
//new Student().study();
//new Student().age = 18;
//System.out.println(new Student().age);
//Student s = new Student();
//s.age = 18;
//s.name = "張三";
//method(s);
method(new Student());
}
public static void method(Student s) {
}

}

class Student {
String name;
int age;
public void study() {
System.out.println("好好學習,高薪就業");
}
}

1.2 final關鍵字
final: 修飾符,可以用於修飾類、成員方法和成員變量
final所修飾的類:不能被繼承,不能有子類
final所修飾的方法:不能被重寫
final所修飾的變量:是不可以修改的,是常量
1.2.1 案例代碼十:

   package com.itheima_01;
/*
 * final: 修飾符,可以用於修飾類、成員方法和成員變量
 * final所修飾的類:不能被繼承,不能有子類
 * final所修飾的方法:不能被重寫
 * final所修飾的變量:是不可以修改的,是常量
 *
 * 常量:
 * 字面值常量:1,2,3
 * 自定義常量:被final所修飾的成員變量,一旦初始化則不可改變
 *
 * 註意:自定義常量必須初始化,可以選擇顯示初始化或者構造初始化
 *
 * 
 */
public class FinalDemo {
public static void main(String[] args) {
//Animal a = new Animal();
//a.eat();
Dog d = new Dog();
//d.eat();
//d.num = 20;
System.out.println(d.NUM);
}
}

/*final*/ class Animal {
public final void eat() {
System.out.println("吃東西");
}
}

class Dog extends Animal {
/*public void eat() {}*/
final int NUM;
public Dog() {
NUM = 10;
}
}

匿名對象&final