什么是实例内部类 Instance inner class有什么语法?

1.Instance inner class定义,用途和用法 (视频下载) (全部书籍)

重要语法:马克-to-win:1)实例内部类一定得有个外层类的实例和它绑定在一起,所以可以用This指针。所以必须先实例化外层类之后才能再实例化内部类。(生活中的例子就是子宫和胚胎(不算试管婴儿!))2)语法规定:实例内部类不能有静态的属性或方法,为什么?因为没有外层类的实例就不应该有实例内部类的任何东西存在,包括内部类的静态属性,但静态属性应该在main方法执行时创建,这样就会产生矛盾,所以规定实例内部类不能有静态的属性或方法。马克-to-win:2)既然每个内部类实例都可以改变他们共同的外层类的静态属性或实例属性,他们成为内部类实例们可以交互的地方。(下例中的shell_x,在不断增长。)

例2.1a:类中有个内部类属性。

class ShellMark_to_win {

int shell_x = 100;//既然每个内部类实例都可以改变这里的外层类静态属性或实例属性,马克-to-win:这里成为内部类实例们可以交互的地方

static int n;

Core core;

void visitCore() {

core = new Core();

core.y=8;

core.display();

}

// 下面是个实例内部类,必须有个外层类实例,才能有这个内部类实例。所以就有了this这个概念。

class Core {

/* 下一句错误,根据语法:马克-to-win:静态的域或方法只能出现在静态类或最外层类上。The field m cannot be
declared static; static fields can only be declared in static inner
class or top level classes,*/

//    static int m=9;

int y = 10; // y is local to core

void display() {

shell_x=shell_x+20;

n=n+1;//轻松访问外层类的静态变量

System.out.println("n is "+n+" display: shell_x and y " +
shell_x + " "+ShellMark_to_win.this.shell_x+ " " + y+ " "+this.y);

}

}

Core newC()

{

return new Core();

}

void showy() {

// y=9; // 错误,马克-to-win:外层类不能直接访问内部类的属性。error,y not known here! System.out.println(y);

}

}

public class Test {

public static void main(String args[]) {

ShellMark_to_win shell = new ShellMark_to_win();

shell.visitCore();

ShellMark_to_win.Core sc=shell.new Core();//内部类实例是存在于外部对象里的。

sc.display();

ShellMark_to_win.Core sc1=shell.newC();

。。。。。。。。。。。。。。。。。
详情请进:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner4_web.html#WhatIsInstance

原文地址:https://www.cnblogs.com/mark-to-win/p/9694679.html

时间: 2024-11-02 14:32:06

什么是实例内部类 Instance inner class有什么语法?的相关文章

实例变量(instance var)与属性(@property)的关系

实例变量(instance var)与属性(@property)的关系 Objective-C 2.0之后,声明一个@property name自动产生一个实例变量,名为_name,因此省去实例变量和属性重复输入的麻烦.而使用@synthesize可以改变_name名称.@property和@synthesize不必成对出现. @property name:指示编译器自动合成setter和getter方法,setter方法名即setName,而getter方法名即name.@property后面

Linux/Unix shell 监控Oracle实例(monitor instance)

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linux 下使用 shell 脚本来监控 Oracle 实例. Linux Shell的相关参考:        Linux/Unix shell 脚本中调用SQL,RMAN脚本        Linux/Unix shell sql 之间传递变量        Linux/Unix shell 调用 P

<知识库的构建> 4-2 实例提取 Instance Extraction

引自Fabian Suchanek的讲义. 总结:介绍了isA这种二元关系和它的应用即推理Taxonomy以得到完整的Taxonomy,再就是介绍了set expansion方法,从种子出发,找到文本中两个与种子相同的实例,就把该文本中其他的实例都添加至种子表中来逐渐的提取实例的方法,此方法也可以应用于HTML表格中. isA(X,Y) : 是一个表示XY之间的二元关系,若成立则X是Y的子集 Hearst Pattern:是一段文本,表示了isA这种二元关系 例如:Homer is a sing

获取当前应用程序实例(instance:HINSTANCE)(转)

if using MFC AfxGetInstanceHandle(). For console programs, call GetConsoleWindow() to get the HWND then GetWindowLong() to get the HINSTANCE. For the Win32 API, you could also use GetModuleHandle(): //get instance of current program (self)HINSTANCE h

居然有这种操作?各路公司面试题(作者:马克-to-win)

我喜欢考试,不考试,谁知道哪些掌握了哪些没有?? 面试什么的最有爱了(变态笑)~~~ http://www.mark-to-win.com/JavaBeginner/JavaBeginner4_web.html java中给出一个子线程如何捕获主线程异常的例子 java中给出一个主线程如何捕获子线程异常的例子 java中什么是线程不安全给出一个例子      java中什么是线程安全给出一个例子      java中给出一个子线程要join主线程的例子      java中一个子线程如何通过in

创建内部类的实例对象,必须创建外部类的实例对象

Outer类中定义了一个成员内部类Inner,需要在main()方法中创建Inner类实例对象,方法:Outer.Inner in  = new Outer().new Inner(); 内部类可以引用全局变量; 静态方法创建实例内部类对象 内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量.成员变量是 对象身上的.对象创建完成了,才会为成员变量分配空间.能调用成员变量, 意味着一定有了实例对象. main方法是静态的,它执行的时候可以不用创建那个对象.这就矛盾了. main方法运行的

python中类(class)和实例(instance)

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 仍以Student类为例,在Python中,定义类是通过class关键字: class Student(object): pass class后面紧接着是类名,即Student,类名通常是大写开头的单词,紧接着是(object),表示该类是从哪个类继承下来的,继承的概念我们后面再

OC 实例变量(Instance Var)和成员变量(member var)区别

摘要:  Objective-C  引入了“实例变量"的概念,但同时, 也经常出现 “成员变量”的声音. 到底什么是实例变量,什么是成员变量,二者的区别是什么呢? 今天查看apple 的官方文档时(如下).https://developer.apple.com/library/mac/referencelibrary/GettingStarted/Learning_Objective-C_A_Primer/index.html 发现了一个新的名词: 成员变量(member variable).

第十八节(内部类(实例,静态,局部,匿名))

在一个类的内部定义的类,称为内部类 内部类主要分类: 1. 实例内部类 2. 局部内部类 3. 静态内部类 实例内部类 : 1. 创建实例内部类,外部类的实例必须已经创建 2. 实例内部类会持有外部类的引用 3. 实例内部不能定义 static 成员,只能定义实例成员 静态内部类 匿名内部类 /* 内部类: 实例内部类(成员内部类) 1. 成员内部类可以等同看做成员变量 2. 成员内部类中不能有静态声明 3. 成员内部类可以访问外部类所有的数据 */ public class OuterClas