⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 j02080703.java

📁 经典java教材《java完美经典》一书中源码的完全收集
💻 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 + -