内部类的类体中不可以声明类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
和类有关的匿名类
class Cubic
{
double getCubic(int n)
{
return 0;
}
}
abstract class Sqrt
{
public abstract double getSqrt(int x);
}
class A
{
void f(Cubic cubic)
{
System.out.println(cubic.getCubic(3));
}
}
public class hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
a.f(new Cubic()
{
double getCubic(int n)
{
return n*n*n;
}
}
);
Sqrt sqrt=new Sqrt()
{
public double getSqrt(int x)
{
return Math.sqrt(x);
}
};
System.out.println(sqrt.getSqrt(5));
}
}
和接口有关的匿名类
interface Cubic
{
double getCubic(int n);
}
interface Sqrt
{
public double getSqrt(int x);
}
class A
{
void f(Cubic cubic)
{
System.out.println(cubic.getCubic(3));
}
}
public class hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
A a=new A();
a.f(new Cubic()
{
public double getCubic(int n)
{
return n*n*n;
}
}
);
Sqrt sqrt=new Sqrt()
{
public double getSqrt(int x)
{
return Math.sqrt(x);
}
};
System.out.println(sqrt.getSqrt(5));
}
}