Java内部类北京PK10平台出租的使用小结

为什么要北京PK10平台出租(www.1159880099.com)QQ1159880099 使用内部类:
使用内部类最吸引人的原因是:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。
内部类:顾名思义就是把类放在某个范围里
类可以放在包中
类可以放在文件夹中
类可以放在类中    //内部类
类可以放在方法中    //内部类

一、成员内部类
类中放置内部类,类里套类,类中类
要使用内部类,就需要在外部类中实例化内部类的对象,然后通过对象打点调用内部类中的方法,通过方法操作内部类数据。
内部类可以直接使用外部类的属性和方法,就像孙悟空钻进铁扇公主肚子里。

复制代码
1 public class OuterClass {
2 //外部类中的属性
3 private int outer_1=100; //私有属性
4 public int outer_2=10; //公有属性
5
6 //外部类方法outer_method1
7 public void outer_method1(){
8 System.out.println("outer_method1");
9 InnerClass ic=new InnerClass();
10 //调用内部类中的方法
11 ic.inner_method1();
12 //调用内部类中的私有属性和公有属性
13 System.out.println(ic.inner_1+" "+ic.inner_2);
14 }
15
16 //有名的内部类InnerClass
17 class InnerClass{
18 //内部类中的属性
19 private int inner_1=123; //私有属性
20 public int inner_2=321; //公有属性
21 //内部类方法inner_method1
22 public void inner_method1(){
23 //调用外部类中的方法,
24 outer_method1();
25 //调用外部类中的私有属性和公有属性
26 System.out.println(outer_1+" "+outer_2);
27 }
28 }
29 }
复制代码
二、局部内部类
方法中中放置内部类
要使用方法中的内部类,就必须在方法中,内部类定义的下面实例化内部类的对象,然后通过内部类对象打点调用内部类的方法,
内部类的作用域仅限于当前方法,对内部类定义开始到方法结束,作用域消失。
在内部类中可以直接使用外部类中的当前方法中的局部变量,在方法的外面不能使用方法中的内部类。

复制代码
1 /*
2
方法中放置内部类
3 */
4 public class OuterClass {
5 //外部类中的属性
6 private int outer_1=100; //私有属性
7 public int outer_2=10; //公有属性
8 //外部类中的方法
9 public void outer_method1(){
10 System.out.println("outer_method1()");
11 System.out.println("outer_1"+"outer_2");
12
13 //方法中的内部类
14 class InnerClass{
15 //内部类中的属性
16 private int inner_1=123; //私有属性
17 public int inner_2=321; //公有属性
18 //内部类中的公有方法
19 public void inner_method1(){
20 System.out.println("public method1");
21 System.out.println(outer_1);
22 }
23 //内部类中的私有 方法
24 private void inner_method2(){
25 System.out.println("private method2");
26 System.out.println(outer_1+" "+outer_2);
27 } }
28 //实例化内部类
29 InnerClass ic=new InnerClass();
30 ic.inner_method1();
31 ic.inner_method2();
32 System.out.println(ic.inner_1+" "+ic.inner_2);
33 //作用域到此处结束
34 }
35 }
复制代码
三、匿名内部类

  1. 匿名内部类是没有访问修饰符的。
    2.有时候我为了免去给内部类命名,便倾向于使用匿名内部类,因为它没有名字。
    3.匿名内部类是没有构造方法的。因为它连名字都没有何来构造方法。
    4.当前匿名内部类中实现的方法,只能实现一次,如果还想其他的实现,必须用匿名内部类重新new实现。

复制代码
1 public class Demo {
2 public void TetMethod1(){
3 //匿名内部类 new 的是CommonPerson的子实现,但没有类名,把子实现的对象赋值给长辈引用
4 CommonPerson cp=new CommonPerson(){
5 @Override
6 public void study() {
7 }
8 @Override
9 public void eat() {
10 }
11 };
12 }
13 public static void main(String[] args) {
14 //有名内部类
15 class Student implements IPerson{
16 public void study(){}
17 public void eat(){}
18 }
19 Student stu1=new Student();
20 IPerson ip=stu1;
21
22 //匿名内部类
23 IPerson ip1=new IPerson(){
24 public void study(){}
25 public void eat() {}
26 };
27 IPerson ip2=new IPerson(){
28 public void study(){}
29 public void eat() {}
30 };
31 }
32 }
33
34
35 public interface IPerson { //定义的接口IPerson
36
37 public void study();
38 public void eat();
39 }
复制代码
四、嵌套内部类
嵌套内部类分为静态内部类和非静态内部类
1.静态内部类
1、 它的创建不需要依赖于外部类。
2、 它不能使用任何外围类的非static成员变量和方法。
2.非静态内部类
1.它的创建需要依赖于外部类 。
2.在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类,可以随便调用外部类中的成员,不管是静态的还是非静态的,相当霸道。

复制代码
1 public class OuterClass {
2 private String sex;
3 public static String name = "ma";
4 /
5 静态内部类
6
/
7 static class InnerClass1{
8 / 在静态内部类中可以存在静态成员 /
9 public static String name1 = "1_static";
10 public void display(){
11 //静态内部类只能访问外围类的静态成员变量和方法
12 System.out.println("OuterClass name :" + name);
13 } }
14 /

15 非静态内部类
16
/
17 class InnerClass2{
18 / 非静态内部类中不能存在静态成员 /
19 public String name2 = "2_inner";
20 / 非静态内部类中可以调用外围类的任何成员,不管是静态的还是非静态的,这就有点霸道了/
21 public void display(){
22 System.out.println("OuterClass name:" + name);
23 }
24 }
25 public void display(){
26 // 外部类访问静态内部类
27 System.out.println(InnerClass1.name1);
28 new InnerClass1().display();
29 / 非静态内部的创建需要依赖于外部类 /
30 OuterClass.InnerClass2 inner2=new OuterClass().new InnerClass2();
31 System.out.println(inner2.name2);
32 inner2.display();
33 }
34 }

原文地址:http://blog.51cto.com/13924302/2160219

时间: 2024-10-03 23:33:05

Java内部类北京PK10平台出租的使用小结的相关文章

JAVA基础知识之北京pk-10平台出租流

一.北京pk-10平台出租Q1446595067流解释API文档说明:FileReader流是用于读取字符文件的便捷类.此类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的.如果要自己指定这些值,那么需要通过FileInputStream流对象来构造InputStreamReader流对象即可 FileReader类继承InputStreamReader类 public class FileReader extends InputStreamReader{}1)构造函数假定默认字符编码和默

Android recycleView 的一北京PK10平台出租些优化与相关问题

北京PK10平台出租论坛:haozbbs.com Q1446595067 recycleView 也出来很长时间了,记录一些自己见到的recycleView优化吧. 1.recyclerView.setHasFixedSize(true); Item的高度是固定的,设置这个选项可以提高性能.总得来说就是就是避免整个布局绘制.就是避免requestLayout. 具体的可以看看stackoverflow的这个几个问题 Understanding RecyclerView setHasFixedSi

北京PK10平台出租matlab的快捷方式与使用技巧

Matlab常用小技巧一:北京PK10平台出租(www.1159880099.com)QQ1159880099 1. m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚.不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成.原因是简单的单词命名容易与matlab内部函数名同名,结果会出现一些莫名其妙的错误.例如,写个m文件,命名为spy,运行时就弹出一个怪怪的figure,呵呵,我当初还以为是什么bug. 2. 调试程序时,经常要屏蔽掉一整段

SpringMVC请求参数北京PK10平台出租和响应结果全局加密和解密

前段时间在做一个对外的网关项目,涉及到加密和解密模块,这里详细分析解决方案和适用的场景.为了模拟真实的交互场景,先定制一下整个交互流程.第三方传输(包括请求和响应)数据报文包括三个部分: 1.timestamp,long类型,时间戳.2.data,String类型,实际的业务请求数据转化成的Json字符串再进行加密得到的密文.3.sign,签名,生成规则算法伪代码是SHA-256(data=xxx&timestamp=11111),防篡改.为了简单起见,加密和解密采用AES,对称秘钥为"

利用Java编码北京PK10平台制作测试CSRF令牌验证的Web API

拙文是利用了Jmeter来测试北京PK10平台制作(www.1159880099.com)QQ1159880099 带有CSRF令牌验证的Web API:最近几天趁着项目不忙,练习了用编码的方式实现. 有了之前Jmeter脚本的基础,基本上难点也就在两个地方:获取CSRF令牌.Cookie的传递. 首先添加依赖,在POM.xml中添加以下内容: <!-- https:// mvnrepository.com/artifact/org.apache.httpcomponents/httpclien

北京赛车pk10平台出租

北京赛车pk10平台出租QQ1148916888 网址:www.1148916888.com 心灵不在它生活的地方,但在它所爱的地方. -- 英国谚语人要正直,因为在其中有雄辩和德行的秘诀,有道德的影响力. -- 阿米尔我们活着不能与草木同腐,不能醉生梦死,枉度人生,要有所做为. -- 方志敏现实是此岸,理想是彼岸,中间隔着湍急的河流,行动则是架在河上的桥梁. -- 克雷洛夫正像新生的婴儿一样,科学的真理必将在斗争中不断发展,广泛传播,无往而不胜. -- 富兰克林在一个崇高的目标支持下,不停地工

java的UDP和TCP详解和北京-赛车平台出租源码分析

1.需求分析北京-赛车平台出租Q1446595067 最近在和硬件做网口的传输协议,一开始告诉我说用TCP的socket进行传输,我说没问题,就写了个socket的发送和接收方法.but过了没一段时间,又告诉我用udp吧,udp传的比较快,就也写了一个udp的.无论是socket还是udp,感觉网上有很多都是写一个监听端口,监听往这个端口发送的数据,然后再写一个发送方法. 2.问题难点本来硬件要是往java端指定端口发,就完全没问题了,但是它是把我发送的数据按照我发的端口号原路返回,就想http

北京赛车平台出租度富文本编辑器UEditor的改造

在Java项目中,做内容管理功能时,需要用到富文本编辑器北京赛车平台出租(www.1159880099.com)QQ1159880099,目前流行的富文本编辑器还是比较多的,因为项目中用的是百度的UEditor,所以对UEditor使用中的一些问题做个总结吧. 因为是Java项目所以使用的是只能选择jsp版本的UEditor,使用方式还是比较简单的,按照UEditor官方的文档来就好了. 首先说下踩过的坑,我项目一开始是用的war部署的方式,大家都知道war部署时是会解压到tomcat的weba

JavaScript实现时间戳转为pk10平台出租搭建

/**pk10平台出租搭建(企 娥:217 1793 408) [DateToTime 时间戳转换为日期] @param {[type]} unixTime [时间戳] @param {String} type [Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s]/function DateToTime(unixTime,type="Y-M-D H:i:s"){var date = new Date(unixTime 100