匿名对象&final

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匿名对象&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的主要内容,如果未能解决你的问题,请参考以下文章

java学习--基础知识进阶第二天--继承匿名对象&final抽象类

5staticfinal匿名对象内部类包修饰符代码块

final关键字解析&匿名内部类形参用final

Java——面向对象进阶(final关键字,static关键字,匿名对象,内部类,包的声明与访问,四种访问修饰符,代码块)

Java面向对象(staticfinal匿名对象内部类包修饰符代码块)

Java基础学习笔记十 Java基础语法之finalstatic匿名对象内部类