大四实习准备4_java内部类

2015-4-30

[昨天又可耻地休息了一天,懒劲比较大啊。跟懒劲有直接关系,这几天对幸福的感知也黯淡了,对未来的幸福不是那么渴望了。表现在对亲情和爱情上。

我想生活的本意是积极进取、茁壮生长并时常感激啊。所以要热爱生活啊。心胸要宽阔。加油^O^

书:

1、周昌乐,《禅悟的实证:禅宗思想的科学发凡》,东方出版社,2006年

2、库比特,《生活 生活:一种正在来临的生活信仰》,宗教文化出版社,2004年

3、克里希那穆提,《爱的觉醒》,深圳报业集团出版社,2006年]

Java 内部类(鸡蛋里又有小鸡蛋,这个小鸡蛋同样有蛋清、蛋黄)

(?java中,类可以用哪些修饰符-----public、abstract、final。类的成员变量、成员函数,接口等可以用哪些修饰符。默认情况下是哪种修饰符。为什么)

非静态内部类

创建非静态内部类;

在外部类中访问内部类(先创建一个内部类的对象,再访问其成员);

在外部类外访问内部类(先创建一个外部类的对象,再通过该对象创建一个内部类的对象,再访问其成员(注意是非private的));

在内部类中访问外部类(直接访问);

 1 class wai{
 2     int x = 5;
 3     class nei{//创建非静态内部类
 4         int xx = 6;
 5         void visitX(){
 6             System.out.println(x);//在内部类中访问外部类
 7         }
 8     }
 9     void visitXX(){//在外部类中访问内部类
10         nei n = new nei();
11         System.out.println(n.xx);
12     }
13 }
14
15 public class test{
16     public static void main(String[] args){
17         wai w = new wai();
18         wai.nei wn = w.new nei();//在外部类外创建内部类的对象,法1
19         System.out.println(wn.xx);//在外部类外访问内部类
20
21         wai.nei wn2 = new wai().new nei();//在外部类外创建内部类的对象,法2
22         System.out.println(wn2.xx);//在外部类外访问内部类
23
24         w.visitXX();
25         wn.visitX();
26     }
27 }

示例1

当在内部类中访问外部类的成员,而内部类的成员与外部类的该成员同名时,直接访问的话,还是访问内部类的成员。

重名时如何去访问外部类中的该成员呢?

 1 class wai{
 2     int x = 5;
 3     class nei{
 4         int x = 6;
 5         void visitWaiX1(){//法1
 6             wai w1 = new wai();
 7             System.out.println(x);
 8             System.out.println(w1.x);
 9         }
10         void visitWaiX2(){//法2
11             System.out.println(this.x);
12             System.out.println(wai.this.x);
13             System.out.println("this="+this);
14             System.out.println("wai.this="+wai.this);
15         }
16     }
17 }
18
19 public class test{
20     public static void main(String[] args){
21         wai w = new wai();
22         wai.nei wn = w.new nei();
23         wn.visitWaiX1();
24         wn.visitWaiX2();
25         System.out.println("wn="+wn);
26         System.out.println("w="+w);
27     }
28 }

示例2

静态内部类

创建静态内部类(使用static修饰即可。另外,外部类是不能用static来修饰的);

在外部类中访问静态内部类(与 非静态内部类 的方法相同);

在外部类外访问静态内部类(与非静态内部类 的方法不同了,静态的,是不依赖与对象的,所以不需要创建外部类对象,而可以直接创建这个静态内部类,当然需要指明是属于哪个外部类的静态内部类);

 1 class wai{
 2     static class nei{//创建静态内部类(使用static修饰即可。另外,外部类是不能用static来修饰的)
 3         int xx = 6;
 4     }
 5     void visitXX(){
 6         nei n = new nei();
 7         System.out.println(n.xx);//在外部类中访问静态内部类(与 非静态内部类 的方法相同)
 8     }
 9 }
10
11 public class test{
12     public static void main(String[] args){
13         wai.nei wn = new wai.nei();
14         System.out.println(wn.xx);
15         //在外部类外访问静态内部类(与非静态内部类 的方法不同了,
16         //静态的,是不依赖与对象的,所以不需要创建外部类对象,而可以直接创建这个静态内部类,
17         //当然需要指明是属于哪个外部类的静态内部类);
18         wai w = new wai();
19         w.visitXX();
20     }
21 }

示例1

局部内部类(在类的成员函数中定义一个内部类)

创建局部内部类(访问该类必须在该内部类所在的方法中通过创建内部类对象来访问);

在局部内部类中访问外部类的成员变量(直接访问);

在局部内部类中访问外部类的局部变量(需声明为final);

在静态方法中的局部内部类中访问外部类中的成员变量(该成员变量必须是静态成员);

 1 class wai{
 2     int x = 5;
 3     void visit1(){
 4         final int xx = 6;
 5         class nei{//创建局部内部类
 6             void fun(){
 7                 System.out.println(x);//在局部内部类中访问外部类的成员变量(直接访问x)
 8                 System.out.println(xx);//在局部内部类中访问外部类的局部变量(xx需声明为final)
 9             }
10         }
11         nei n = new nei();
12         n.fun();
13     }
14     static int y = 7;
15     static void visit2(){
16         class nei{
17             void fun(){
18                 System.out.println(y);//在静态方法中的局部内部类中访问外部类中的成员变量(该成员变量必须是静态成员)
19             }
20         }
21         nei n = new nei();
22         n.fun();
23     }
24 }
25
26 public class test{
27     public static void main(String[] args){
28         wai w = new wai();
29         w.visit1();
30         w.visit2();
31     }
32 }

实例1

匿名内部类(暂理解作,其实可以是继承自父类的一个类,但是整合到一起了,不显示出来了,于是“匿名”了。然后是在主函数中创建的类,所以叫”内部类“???

觉得有点不科学。。。。。但不重要吧。)

创建匿名内部类

http://www.cnblogs.com/nerxious/archive/2013/01/25/2876489.html(补充,匿名内部类所继承的父类不需要是抽象类或接口,正常的也行);

匿名内部类的初始化(利用非静态语句块)

 1 class neiFather{
 2     int x;
 3     void output(){
 4         System.out.println("in neiFather");
 5     }
 6 }
 7
 8 public class test{
 9     public static void main(String[] args){
10         neiFather nf = new neiFather()
11         {
12             {
13                 x = 5;
14             }
15             void output(){
16                 System.out.println("x="+x);
17             }
18         };
19         nf.output();
20     }
21 }

示例1

时间: 2024-11-08 22:15:00

大四实习准备4_java内部类的相关文章

大四实习准备5_android广播机制

2015-5-1 android 广播机制 5.1简介 分为标准广播(Normal broadcasts)(无先后顺序,几乎同时接收,不可截断)和有序广播(Ordered broadcasts)(有先后顺序,可以截断)两种. 5.2接收系统广播 广播接收器对感兴趣的广播进行注册,这样就能监听到对应的广播,并在内部处理相应的逻辑. 注册广播的方式有两种,分别为在代码中注册(动态注册)(缺点:必须在程序启动之后才能接收到广播,因为注册的逻辑是写在onCreat()方法中的)和在AndroidMani

大四实习准备2

2015-4-24 Java 异常处理 可以有多个catch;ArrayIndexOutOfBoundsException类是Exception类的子类RuntimeException类的一个间接子类;finally{}一定被执行; 异常分类: 1>继承关系 Object类->Throwable类->Error类(通常是硬件运行错误,通常不能通过程序来修改)(未捕获异常).Exception类 Exception类->RuntimeException类(若不进行异常处理,可能编译时

大四实习准备6_android服务

2015-5-9 1.服务是什么 2.Android多线程编程 3.服务的基本用法 3.1定义服务 1)创建myService类,使其继承Service类, 2)再实现onBind()方法(用于活动和服务的绑定),重写onCreate()(服务创建时调用).onStratCommand(服务启动时调用).onDestroy()方法(服务销毁时调用). 3)每一个服务(事实上是四大组件)都需在AndroidManifest.xml中注册才能生效 3.2启动和停止服务 借助Intent. 启动: 1

大四实习准备

2015-4-23 Java构造器 与类名同名;无返回值(void也不行);被不同的修饰符修饰是有区别的;当构造函数被private修饰时,只有本类可访问.其他类可以通过该类的get函数得到对象.如单子模式;子类的构造函数默认调用super(),即父类的构造函数,然后再回到子类自己的构造函数.子类的构造函数中写了super()效果也一样,相当于没写(只能写在第一句,否则出错);构造函数可以重载(当父类有多个构造函数时,可以用super(xxx)来指定调用父类的哪个构造函数);当自定义了构造函数后

大四实习准备3

4.25.27无耻地懒散了.....26号陪女朋友去了.今天28号,继续加油! 2015-4-28 Java 多线程 (java中类不能多继承,可以多层继承:接口则都可以) 定义和创建: 方法一:继承Thread类 方法二:实现Runnable接口 : 启动线程: 线程只能被启动一次,多次启动线程,即多次调用start方法时,会发生IllegalThreadStateException异常: //以上综合来个code 线程的生命周期: 线程调度: (join()方法的状态变化?) 1.睡眠方法

大四狗:我的java历程——越努力,越幸运。

大二的时候写过一篇博客,< 作为一名计算机学院普通的大学生如何提高兴趣敲代码 >,没想到当时引起了很多同学的共鸣,有的人觉得受到了鼓舞,有的人觉得看到这篇文章已经大四,要改变也太晚了.然而对于我,写完那篇博客之后发生了很多事情,在java学习上有坚持,有懈怠,有前进,亦有低谷.好在现在,起码是这会儿,我还在低头看路,还在走上坡路.那会儿到现在大概一年半的时间,我就来说说这一年半的时间我的java历程吧,还是和上次一样,希望大家在看完我的故事之后,可以留下感想.或是鼓励,分享自己学习java的经

大三学生关于实习和考研的安排

[私信] 您好,我是大三计算机学生,就读985高校,学习了很多知识,有的自己掌握还好,有的还很肤浅, 例如编译原理,概率论,学了这么多知识完全串在一起很有难度,我想大三之后去实习,体会软件工程,数据库以及社会的需求,然后大四在准备考研,也就是晚一年,您有什么好建议么,社会是我想的这样么? [回复] CSDN私信限字数之后,我觉得很多时候不足以让大家清楚地表达了.我不很明白你的想法.大三之后实习,不就是大四实习吗?还就是暑假实习一段时间?大四准备考研,这怎么叫晚一年?你想像中的社会是什么?对你的问

计算机行业小总结

眼看着就要大四实习了,听了陈老师的一个小讲座,自己做了个计算机行业的小总结. 首先,需要了解 软件产品形成的过程:市场需求 --> 策划 --> 规划 --> 设计 --> 评估 --> 开发(项目管理.测试)--> 营销 --> 运维 软件项目的形成过程:市场营销 --> 售前支持 --> 需求分析 --> 概要设计 --> 详细设计 -->  编码 --> 测试 --> 部署实施 --> 技术支持 好了,现在说一

随便写写。。。

写点什么呢,打开电脑发呆了半个小时.第一次写blog,不知道该写些什么,但总要迈出第一步,既然想在现在留下点什么,来让日后嘲笑当年的自己,那就要开始并坚持下去,虽然可能是一时兴起. 今天是2017年6月10日,也是发工资的好日子,从事PHP一年零4天了,刚开始接触php是大四实习出去找工作,因为大学的地方不适合工作,也离家比较远,所以选择回到本省的省会城市去找工作,当时一起的是高中同学,大学学的同样的专业,就商量一起去找工作,前几天,基本处于疯狂投简历状态,但都石沉大海,连浪花都没有激起.于是决