📄 j02080703.java
字号:
import java.lang.*;
class j02080703
{
public static void main(String[] para)
{
A obj1 = new A(60);
obj1.showVar();
System.out.println("============================" );
Outer obj2 = new Outer();
obj2.useAnon();
System.out.println("============================" );
I1 obj3 = Outer.getI1("CYH",5000); //返回以匿名类产生的对象
obj3.getPays();
}
}
class A
{
protected int a;
public A()
{
a = 999;
}
public A(int a)
{
this.a = a;
}
public void showVar()
{
System.out.println("a = " + a );
}
}
interface I1
{
int MAXPAY = 20000;
int MINPAY = 1000;
public void getPays();
}
class Outer
{
public int x = 500;
String str = "Outer str";
public void useAnon()
{
A obj = new A(1111)
{ //=====匿名类开头========
public int b;
{ // 用来初始化之区块叙述句
b = a + 1000;
str = str + "in Anonymous Class";
System.out.println("一个匿名类对象产生");
}
public void showVar()
{ //override A 类之 showVar()
System.out.println("a = " + a + " b = " + b);
AandB();
System.out.println( str ); //直接使用外围类的 str
}
/*
static void test()
{
System.out.println("test");
}
*/
public void AandB()
{ //此匿名类新增的方法,只能在其内调用
System.out.println("a + b =" + (a+b) );
}
} ; //";" 是 A obj = new A(...) 叙述句的结尾, ===> } 为匿名类结尾
obj.showVar();
}
public static I1 getI1(final String myName,final int increment)
{ //要定义为 final 变量,匿名类内才可使用它
I1 obj = new I1()
{ //=====匿名类开头========
String CusName = "顾客:" + myName;
public void getPays()
{
System.out.println( CusName );
System.out.println("每月预期可消费额最高 = " + MAXPAY);
System.out.println("每月预期可消费额最低 = " + MINPAY);
System.out.println("本月预期可消费额最高 = " + (MAXPAY+increment));
}
}; //匿名类结尾
return obj;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -