一、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. plutil工具

    作用: 检查元素文件语法: 转换格式.支持xml binary json: 插入key-value: 打印内部信息: 详细解释: -lint                         check ...

  2. HDU3874Necklace(树状数组+离线操作)

    此题的大意思说有一串珠子,每个珠子都有自己的欣赏值value,现在给你一串珠子每个的欣赏值,并给出一些询问,查询某个区间内部总欣赏值是多少,但是有一个约定就是如果这个区间内部有两个珠子的欣赏值是一样的 ...

  3. 设置UIButton文字大小颜色不同

    _loginBtn = [[UIButton alloc]initWithFrame:CGRectMake(iconX, CGRectGetMaxY(passwordBGView.frame)+25, ...

  4. Mongo数据模型

    Mongo数据模型 一个Mongo系统(参考上述部署)包含一组数据库 一个 database 包含一组collection 一个 collection 包含一组document 一个 document ...

  5. Ubuntu 搭建PHP开发环境

    Ubuntu确实很好玩.有喜欢的命令行,简洁的界面,不同于Window要的感觉.偶尔换换环境工作,学习Linux的思维方式,是一种不错的做 法.之前也折腾过Ubuntu,不过,因为网络的问题,一直没有 ...

  6. 关于JAVA多线程的那些事__初心者

    前言 其实事情的经过也许会复杂了点,这事还得从两个月前开始说.那天,我果断不干IT支援.那天,我立志要做一个真正的程序猿.那天,我26岁11个月.那天,我开始看Android.那天,我一边叨念着有朋自 ...

  7. Server-U与IIS端口占用问题解决

    在新版的ftp软件Server-U(11.X)中,由于其默认设置中监听了80端口,经常会导致IIS不能服务不能正常启用,下面记录如何修改server-u的80端口.     打开Server-U软件, ...

  8. JavaScript 不重复的随机数

    在 JavaScript 中,一般产生的随机数会重复,但是有时我们需要不重复的随机数,如何实现?本文给于解决方法,需要的朋友可以参考下     在 JavaScript 中,一般产生的随机数会重复,但 ...

  9. spring-flex

    mvn install:install-file -Dpackaging=jar -DgroupId=com.adobe.blazeds -Dversion=4.0.0.14931 -Dartifac ...

  10. ASP.NET加载主题和皮肤样式的各种方式

    一.加载主题(皮肤.样式表)的多种方式 除了在页面指令中采用Theme或者StylesheetTheme为单个页面加载主题外,还可以通过配置文件为多个页面批量加载主题,另外,还可以通过改变页面的The ...