一、static内部类的static方法

public class Test0719_Inner_Test {
public static void main(String[] args) {
//static内部类的static方法。。。
Outter.InnerStatic.InnerNameee();
System.out.println(Outter.InnerStatic.jjj);
System.out.println();
}
}
class Outter {
String i = "非static";
static String j = "static";
static class InnerStatic{
static String jjj = "内部类的static";
public static void InnerNameee() {
System.out.println("static内部类的static方法。。。");
//static内部类访问外部类的static成员
System.out.println(j);
//static内部类访问外部类的非static成员
System.out.println(new Outter().i);
}
}
}

运行结果:

static内部类的static方法。。。

static

非static

内部类的static

二、static内部类的非static方法

public class Test0719_Inner_Test {
public static void main(String[] args) {
//static内部类的非static方法
Outter.InnerStatic inner = new Outter.InnerStatic();
inner.InnerName();
System.out.println(inner.iii);
System.out.println();
}
}
class Outter {
String i = "非static";
static String j = "static";
static class InnerStatic{
String iii = "内部类的非static";
public void InnerName() {
System.out.println("static内部类的非static方法");
//static内部类访问外部类的static成员
System.out.println(j);
//static内部类访问外部类的非static成员
System.out.println(new Outter().i);
}
}
}

运行结果:

static内部类的非static方法

static

非static

内部类的非static

三、非static内部类的非static方法

public class Test0719_Inner_Test {
public static void main(String[] args) {
//非static内部类的非static方法…………
Outter.InnerNoStatic innerNoStatic = new Outter().new InnerNoStatic();
innerNoStatic.InnerNoName();
System.out.println(innerNoStatic.iiiNoStatic);
}
}
class Outter {
String i = "非static";
static String j = "static";
class InnerNoStatic{
int iiiNoStatic = 99776;
public void InnerNoName() {
System.out.println("非static内部类的非static方法…………");
//非static内部类访问外部类的static成员
System.out.println(Outter.j);
//非static内部类访问外部类的非static成员
System.out.println(i);
}
}
}

运行结果:

非static内部类的非static方法…………

static

非static

99776

四、综合练习

package com.acc;

public class Test0719_Inner2 {
String str = "孙洋洋"; class Text2 {
int i = 1; void m2() {
System.out.println(new Test0719_Inner2().str);
} class Text3 {
int k = 3; public void m1() {
System.out.println("m1的"+ new Test0719_Inner2().str);
}
}
} public static void main(String[] args) {
Test0719_Inner2.Text2 text2 = new Test0719_Inner2().new Text2();
text2.m2();
System.out.println(); Test0719_Inner2.Text2.Text3 text3 = new Test0719_Inner2().new Text2().new Text3();
text3.m1();
}
}

运行结果:

孙洋洋





m1的孙洋洋

五、汇总

package com.test;

public class Test0719_Inner_Test {
public static void main(String[] args) {
//static内部类的static方法。。。
Outter.InnerStatic.InnerNameee();
System.out.println(Outter.InnerStatic.jjj);
System.out.println();
//static内部类的非static方法
Outter.InnerStatic inner = new Outter.InnerStatic();
inner.InnerName();
System.out.println(inner.iii);
System.out.println();
//非static内部类的非static方法…………
Outter.InnerNoStatic innerNoStatic = new Outter().new InnerNoStatic();
innerNoStatic.InnerNoName();
System.out.println(innerNoStatic.iiiNoStatic);
}
}
class Outter {
String i = "非static";
static String j = "static";
static class InnerStatic{
String iii = "内部类的非static";
static String jjj = "内部类的static";
public void InnerName() {
System.out.println("static内部类的非static方法");
//static内部类访问外部类的static成员
System.out.println(j);
//static内部类访问外部类的非static成员
System.out.println(new Outter().i);
}
public static void InnerNameee() {
System.out.println("static内部类的static方法。。。");
//static内部类访问外部类的static成员
System.out.println(j);
//static内部类访问外部类的非static成员
System.out.println(new Outter().i);
}
} class InnerNoStatic{
int iiiNoStatic = 99776;
public void InnerNoName() {
System.out.println("非static内部类的非static方法…………");
//非static内部类访问外部类的static成员
System.out.println(Outter.j);
//非static内部类访问外部类的非static成员
System.out.println(i);
}
}
}

运行结果:

static内部类的static方法。。。

static

非static

内部类的static





static内部类的非static方法

static

非static

内部类的非static





非static内部类的非static方法…………

static

非static

99776

Java学习笔记——内部类及其调用方法的更多相关文章

  1. Java学习笔记(六)——方法

    一.方法定义 1.语法: 其中: (1) 访问修饰符:方法允许被访问的权限范围, 可以是 public.protected.private 甚至可以省略 ,其中 public 表示该方法可以被其他任何 ...

  2. 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

    方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...

  3. Java学习笔记——设计模式之五.工厂方法

    水边一只青蛙在笑 --石头和水 工厂方法模式(Factory Method),定义了一个用于创建对象的接口,让实现类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 这里在简单和工厂的基础上 ...

  4. 0040 Java学习笔记-多线程-线程run()方法中的异常

    run()与异常 不管是Threade还是Runnable的run()方法都没有定义抛出异常,也就是说一条线程内部发生的checked异常,必须也只能在内部用try-catch处理掉,不能往外抛,因为 ...

  5. Java学习笔记-内部类

    内部类在Android中有着大量的运用 内部类 内部类提供了更好的封装:内部类可以直接访问外部类的私有数据:匿名内部类适合那些只需要使用一次的类.非静态内部类不能拥有静态成员.内部类比外部类可以多使用 ...

  6. 1.8(java学习笔记)继承与方法的重写

    继承 在java中可以通过继承提高代码的复用率. 例如A继承了B,就可以是 例如,首先有一个类似Person,这个类中有有一些属性和方法,我们再新建一个Student类,其中有一部分属性和方法与Per ...

  7. java学习笔记之String.Split方法

    hello 大家好,好久不见,今天 我们要讨论的是java的split方法,或许你很早就知道了,但你真的知道吗? 我们来看看吧. 首先我们来看看我们最常用的split()方法也就是单个参数的方法 pu ...

  8. Java 学习笔记之 线程interrupted方法

    线程interrupted方法: interrupted()是Thread类的方法,用来测试当前线程是否已经中断. public class InterruptThread extends Threa ...

  9. Java 学习笔记之 线程interrupt方法

    线程interrupt方法: interrupt方法是用来停止线程的,但是他的使用效果并不像for+break那样,马上就停止循环. 调用interrupt()其实仅仅是在当前线程中打了一个停止标记, ...

随机推荐

  1. commondline 之一 常识

    用法: 执行类执行 jar 文件 java [-options] class [args...]java [-options] -jar jarfile [args...] 常识:javac Some ...

  2. 自定义滚动控件(Pagecontrol)

    // // MyPageCorol.h // lejiahui // // Created by iOS开发 on 16/4/10. // Copyright © 2016年 zhongmingwuy ...

  3. 将UIImage保存成JPG或PNG格式存储在本地

    -(void)pngAndJpg:(UIImage*)image{ NSString *pngPath = [NSHomeDirectory() stringByAppendingPathCompon ...

  4. JavaScript要点(十七) Math 对象

    来源:JavaScript 参考手册 Math 对象 Math 对象用于执行数学任务. Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(). 语法 var ...

  5. linq 动态排序,不使用反射

    之前网上搜索的相关方法都是使用了反射的方法来动态获取字段,以实现动态linq排序,但是因为项目组觉得此方法效率低下,所以不予采纳. 所以有了以下代码 public interface IBase{ d ...

  6. HttpRuntime.Cache 失效

    最近做一个报纸内容类网站,为了提高响应速度,将首页各栏目以及二级栏目中Part文献列表存储在HttpRuntime.Cache缓存中,发布后发现问题,刚插入的缓存很快就失效,本机调试没有问题. 由于H ...

  7. 响应式的dribbble作品集魔术布局展示效果

    在线演示1 本地下载 相信做设计的朋友肯定都知道dribbble.com,它是一个非常棒的设计师分享作品的网站,全世界数以万计的设计高手和行家都在这个网站上分享自己的作品,当然,如果你常在上面闲逛的话 ...

  8. 用java发送邮件(黄海已测试通过)

    /** * java发送带附件的邮件 * 周枫 * 2013.8.10 */ package com.dsideal.Util; import javax.mail.*; import javax.m ...

  9. QML学习笔记之三

    import QtQuick 1.1 Row{ spacing:2 Rectangle{color:"red";width:50;height:50} Rectangle{colo ...

  10. 内​存​泄​露​调​试​之​ ​v​i​s​u​a​l​ ​l​e​a​k​ ​d​e​t​e​c​t​o​r​ ​工​具【转】

    本文参考此文:http://kangzj.net/visual-leak-detector-download/  另外一种检查内存泄露的工具:visual leak  detector  简称  vl ...