一个类定义在一个类的里面;
内部类可以随意使用外部类的成员;
要生成内部类对象,要先生成外部类对象;new一个外部类的对象.new一个内部类的对象;
外部类A,内部类B
A a=new A(); 生成外部类对象
A.B b= a.new B(); 生成内部类对象
//方向接口
public interface Direction
{
public static final int LEFT=0;
public static final int RIGHT=1;
public static final int UP=2;
public static final int DOWN=3;
}
public class Line
{
protected Point p1,p2; //直线的起点和终点
//点类,内部类,实现方向接口
protected class Point implements Direction
{
protected int x,y;
protected Point(int x,int y) //内部类构造方法
{
this.x=x;
this.y=y;
}
protected Point(){
this(0,0);
}
protected Point(Point p){
this(p.x,p.y);
}
protected String toStr(){
return "("+this.x+","+this.y+")";
}
protected Point another(int interval,int direction){
//以当前点为基点,返回给定距离和方向的另一个点对象
Point p2=new Point(this);
switch(direction){
case LEFT:
{
p2.x-=interval;
break;
}
case RIGHT:
{
p2.x+=interval;
break;
}
case UP:
{
p2.y+=interval;
break;
}
case DOWN:
{
p2.y-=interval;
break;
}
default:
p2=null;
}
return p2;
}
}//内部类结束
public Line(Point p1,int length,int direction) //直线类的构造方法
{
this.p1=p1;
this.p2=p1.another(length,direction);//外部类调用内部类的成员方法
}
public Line(int x,int y,int length,int direction){ //直线类构造方法
this.p1=new Point(x,y); //外部类创建内部类对象
this.p2=this.p1.another(length,direction);
}
public Line(){
this(0,0,0,0);
}
public void print()
{
System.out.println("一条直线,起点为:"+this.p1.toStr()+"终点为"+this.p2.toStr());
}
public static void main(String args[]){
Line line1=new Line(100,100,20,Direction.RIGHT);
line1.print();
}
}
分享到:
相关推荐
Handler对象中使用匿名内部类或非静态内部类正确地释放消息避免内存泄漏或增加Native内存,在Android中,Handler对象通常会被用来在主线程(UI线程)中处理消息,以更新UI界面。当我们在Handler对象中使用匿名内部类...
1.接口-简介 2.接口-作用 3.接口-定义方式 4.接口-实现 5.接口-与抽象类之区别 6.接口-应用示例(设计模式...内部类-局部内部类 12.内部类-匿名内部类 13.内部类-静态内部类 14.综述
Java内部类是Java言语的一个很重要的概念,《Java编程思想》花了很大的篇幅来讲述这个概念。但是我们在实践中很少用到它,虽然我们在很多时候会被动的使用到它,但它仍然像一个幕后英雄一样,不为我们所知,不为我们...
内部类分类
java 内部类 实例内部类 局部内部类 匿名类 静态内部类 实例代码
java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范
Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类Java内部类
相关android开发中内部类 匿名内部类 内部接口 对比说明
实验报告8++内部类与异常类
java 成员内部类使用 内部匿名类 方法参数匿名类 方法匿名类
成员内部类、局部内部类、静态内部类、匿名内部类
主要讲述了JAVA中内部类和匿名内部类的相关问题。
java基础第七章内部类与异常类.doc
java的内部类
反射私有内部类的例子 反射私有内部类的例子反射私有内部类的例子
- 不同类型的内部类(静态内部类、成员内部类、局部内部类和匿名内部类)的区别和用法 - 内部类的优缺点以及使用场景 这些目标将帮助你理解和掌握内部类的概念,并能够在适当的时候使用内部类来解决问题...
java内部类详解
java 利用反射获取内部类静态成员变量的值操作.docx
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现...
内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。