20160308接口内部类:Scanner、工厂设计模式、匿名类
来源:互联网 发布:戴尔色彩软件 编辑:程序博客网 时间:2024/06/07 03:14
Scanner s=new Scanner(Readable r);
扫描r;
s.nextInt(); 则会读取扫描体r内的一个Int
Random r=new Random(seed); //seed影响随机数顺序,可以为void
r.nextInt(10); //生成一个10以内的Int
interface Readable{
abstract read(); //设置输出给Scanner的内容
}
接口中的域默认为public+final+static,他们不是接口的一部分,而是放在该接口的静态存储区域内
嵌套接口
class A{
interface B{}
private interface P{} //class允许private接口,C中决不允许出现private关键字
}
interface C{
interface D{}
}
class implements A.B{} //类可以如此调用接口
class implements C{} //只需实现C的方法,无需实现嵌套D的方法
工厂设计模式:建立一个新类来返回特定的类,类似getchar()。可以隐藏具体类。
10 内部类
想要创建内部类,必须先有外部类对象,借此产生内部类
1、Outer.Inner in=new Outer().new Inner();
2、Outer.Inner in=new Outer().getInner();
在内部类中生成外部类实例:return Outer.this;
interface A{}
class B implements A{}
A a=new B();
关于内部类的一些思考
1、内部类配合向上转型,可以实现。用户根本不知道所使用的这个对象为什么类型。
比如:
interface C{}
class A{
private class B implements C{}
public C getB(){return new B();}
}
当调用getB()时,用户只知道会得到一个通用接口A的对象,但是无法知道其内部是B。这有很大的隐蔽性和价值。
2、永远不要指望创建一个不在你范围内的对象,即B b=new ***,永远不要想!你所能使用的是,得到其外部类,
然后调用其外部类中public getB()方法,得到B。自制和获赠区别大家都懂。
3、当B中有public B(){},意味着你可以在其他的地方,构建一个B,但是你仍然无法获得B对象的引用。你只能讲B向上
转型,然后找一个A引用来指向B。
内部类可以访问所有外部private成员。外部类可以通过new Outer().new Inter().privateInnData的方式访问内部类的private成员。
因为在调用外部类时,实质是new Outer().privateOutData
一大问题:内部类、外部类、方法之间的权限调用问题!
作用域内的类B,可在作用域内直接常见对象B来调用其成员和方法。但仅在作用域内可以创建B对象。
匿名类:直接生成一个未定义的对象
1、存在接口A
2、new A(){定义} //使用A接口,并向上转型
扫描r;
s.nextInt(); 则会读取扫描体r内的一个Int
Random r=new Random(seed); //seed影响随机数顺序,可以为void
r.nextInt(10); //生成一个10以内的Int
interface Readable{
abstract read(); //设置输出给Scanner的内容
}
接口中的域默认为public+final+static,他们不是接口的一部分,而是放在该接口的静态存储区域内
嵌套接口
class A{
interface B{}
private interface P{} //class允许private接口,C中决不允许出现private关键字
}
interface C{
interface D{}
}
class implements A.B{} //类可以如此调用接口
class implements C{} //只需实现C的方法,无需实现嵌套D的方法
工厂设计模式:建立一个新类来返回特定的类,类似getchar()。可以隐藏具体类。
10 内部类
想要创建内部类,必须先有外部类对象,借此产生内部类
1、Outer.Inner in=new Outer().new Inner();
2、Outer.Inner in=new Outer().getInner();
在内部类中生成外部类实例:return Outer.this;
interface A{}
class B implements A{}
A a=new B();
关于内部类的一些思考
1、内部类配合向上转型,可以实现。用户根本不知道所使用的这个对象为什么类型。
比如:
interface C{}
class A{
private class B implements C{}
public C getB(){return new B();}
}
当调用getB()时,用户只知道会得到一个通用接口A的对象,但是无法知道其内部是B。这有很大的隐蔽性和价值。
2、永远不要指望创建一个不在你范围内的对象,即B b=new ***,永远不要想!你所能使用的是,得到其外部类,
然后调用其外部类中public getB()方法,得到B。自制和获赠区别大家都懂。
3、当B中有public B(){},意味着你可以在其他的地方,构建一个B,但是你仍然无法获得B对象的引用。你只能讲B向上
转型,然后找一个A引用来指向B。
内部类可以访问所有外部private成员。外部类可以通过new Outer().new Inter().privateInnData的方式访问内部类的private成员。
因为在调用外部类时,实质是new Outer().privateOutData
一大问题:内部类、外部类、方法之间的权限调用问题!
作用域内的类B,可在作用域内直接常见对象B来调用其成员和方法。但仅在作用域内可以创建B对象。
匿名类:直接生成一个未定义的对象
1、存在接口A
2、new A(){定义} //使用A接口,并向上转型
0 0
- 20160308接口内部类:Scanner、工厂设计模式、匿名类
- Java 匿名内部类 工厂模式
- 【幻化万千戏红尘】qianfengDay10-java基础学习:成员内部类、静态内部类、局部和匿名内部类,设计模式之简单工厂模式
- JAVASE 面向对象 多态 单类设计模式 内部类 匿名内部类
- 匿名内部类工厂方法-内部类
- 类中定义接口-匿名内部类
- 匿名内部类实现接口,继承类
- Java方法工厂,接口,常用日期类Date面向对象,匿名内部类局部类
- java匿名内部类实现工厂设计方法
- java匿名内部类实现工厂方法模式
- 内部类 匿名内部类与接口
- #static,final,抽象,接口,多态,内部类,单子和工厂设计模式
- 接口,new,匿名内部类
- 匿名内部类实现接口
- 接口 匿名对象 内部类
- 匿名类、内部类、匿名内部类
- 匿名类、内部类、匿名内部类
- 匿名类、内部类、匿名内部类
- HTML5 API --- 页面可见性改变(visibilitychange)事件
- CodeForces 634A
- ListView的CommonAdapter
- 多个EditText的setError不显示
- 数据结构(26)--排序篇之归并排序
- 20160308接口内部类:Scanner、工厂设计模式、匿名类
- 一个简单的爬虫程序
- 如何合理的设置培训体系
- spring的自动装配Bean与自动检测Bean
- web学习(一)html标签
- Android实现类似微信的延迟加载的Fragment——LazyFragment
- Jquery学习笔记一:介绍下jquery
- android中废弃的,过时的,不推荐使用的一些类和方法
- Android播放视频的三种方式