-
2022-03-22 16:48:45
public class Person{//外部类 class Brain{//内部类 } public static void main(String [] args){ //内部类的实例化 Person p1 = new Person();//先实例化外部类 Brain b1 = p1.new Brain();///实例化内部类 } }
这里边儿,我们将内部类(Brain)当=近似看作外部类(Person)的一个属性,从而进行实例化。
更多相关内容 -
java 内部类实例化方式
2018-09-06 19:42:521、java成员和静态内部类的使用,适用类本身适用,旨在减少文件个...①java成员内部类和静态内部类的实例化方式, ②内部类的方法调用方式 代码实现如下: package com.innerClass; import com.google.gson.Gso...1、java成员和静态内部类的使用,适用类本身适用,旨在减少文件个数和方便维护管理;
2、匿名内部类方便不同业务实现下的灵活使用;
3、局部内部类,跟匿名内部类相仿,但功能不同。
本文着重讲:
①java成员内部类和静态内部类的实例化方式,
②内部类的方法调用方式
代码实现如下:
package com.innerClass; import com.google.gson.Gson; /** * Created by Liuxd on 2018-09-06. */ public class TestInnerClass { private static final Gson gson = new Gson(); public static void main(String[] args) { /** * 外部类 */ User user = new User(); user.setName("Jack"); user.setAge(22); /** * 创建内部类对象 */ User.BankInfo bankInfo = user.new BankInfo(); bankInfo.setBankName("中国工商银行"); bankInfo.setBankNo("15801122225553669"); String json = gson.toJson(user); System.out.println(json); System.out.println("---------------------------------------------------------"); user.setBankInfo(bankInfo); json = gson.toJson(user); System.out.println(json); System.out.println("---------------------------------------------------------"); /** * 创建静态内部类对象 */ User.Org org = new User.Org(); org.setOrgCode("ceo"); org.setOrgName("总裁办公室"); org.print(); System.out.println("---------------------------------------------------------"); user.setOrg(org); json = gson.toJson(user); System.out.println(json); } }
外部类/内部类:
package com.innerClass; /** * Created by Liuxd on 2018-09-06. */ public class User { private String name; private int age; private BankInfo bankInfo; private Org org; class BankInfo { private String bankNo; private String bankName; public String getBankNo() { return bankNo; } public void setBankNo(String bankNo) { this.bankNo = bankNo; } public String getBankName() { return bankName; } public void setBankName(String bankName) { this.bankName = bankName; } } static class Org { private String orgCode = ""; private String orgName = ""; public void print() { System.out.println("机构编码:" + orgCode + ",机构名称:" + orgName); } public String getOrgCode() { return orgCode; } public void setOrgCode(String orgCode) { this.orgCode = orgCode; } public String getOrgName() { return orgName; } public void setOrgName(String orgName) { this.orgName = orgName; } } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public BankInfo getBankInfo() { return bankInfo; } public void setBankInfo(BankInfo bankInfo) { this.bankInfo = bankInfo; } public Org getOrg() { return org; } public void setOrg(Org org) { this.org = org; } }
打印结果:
{"name":"Jack","age":22} --------------------------------------------------------- {"name":"Jack","age":22,"bankInfo":{"bankNo":"15801122225553669","bankName":"中国工商银行"}} --------------------------------------------------------- 机构编码:ceo,机构名称:总裁办公室 --------------------------------------------------------- {"name":"Jack","age":22,"bankInfo":{"bankNo":"15801122225553669","bankName":"中国工商银行"},"org":{"orgCode":"ceo","orgName":"总裁办公室"}}
-
Java中内部类的实例化
2013-06-09 13:48:06Java 内部类 实例化 在Outer类的静态方法中实例化内部类 在同一个包的其它类中实例化Outer类中的内部类 -
内部类及静态内部类的实例化
2021-03-10 01:12:29内部类的实例化如果内部类未声明为static,在实例化时首先需要new一个外部类的对象。并通过p.new Inner()的方式new 内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner,而不是p.Inner,这个...内部类的实例化
如果内部类未声明为static,在实例化时首先需要new一个外部类的对象。并通过p.new Inner()的方式new 内部类,表明这个内部类指向该外部类。内部类的class类型为:Parent.Inner,而不是p.Inner,这个需要和new的方式区分开。
public class Test {
public static void main(String[] args) {
Parent p = new Parent();
Parent.Inner i = p.new Inner();
i.print();
}
}
class Parent {
class Inner {
public void print() {
System.out.println("xxx");
}
}
}
静态内部类的实例化
静态内部类与普通内部类的区别在于,静态内部类的对象是不指向与某个具体的外部类对象,所以在创建对象时不需要创建外部类对象。并且在new的时候是通过
new Parent.Inner()方式,而不是Parent.new
Inner()。不要和内部类的实例化搞混了。class的声明和内部类是一样的,都是Parent.Inner
public class Test {
public static void main(String[] args) {
Parent.Inner i = new Parent.Inner();
i.print();
}
}
class Parent {
staticclass Inner {
public void print() {
System.out.println("xxx");
}
}
}
-
java内部类实例化时报错的问题
2018-11-27 10:59:46如果需要实例化Item类时,可能会写成:Data.Item item = new Data.Item(); 但是编译器就会出现一个错误:'com.test.Data.Item' is not an enclosing class 其实这种写法是错误的,正确的方式为: Da...如果有一个类的结构如下:
public class Data {
public class Item {}
};如果需要实例化Item类时,可能会写成:Data.Item item = new Data.Item();
但是编译器就会出现一个错误:'com.test.Data.Item' is not an enclosing class
其实这种写法是错误的,正确的方式为:
Data data = new Data();
Data.Item item = data.new Item();如果内部类是static的,如下:
public class Data {
public static class Item {}
};那就可以直接使用如下方式来实例化:Data.Item item = new Data.Item();
-
Java | 内部类的实例化
2022-04-09 09:50:16查了一下资料,说在实例化内部类的时候,要写成 外部类.内部类 对象名 = new 外部类.内部类(); 如第16行代码所示,不需要实例化的时候,写成第4行就可以: public class NC_78 {//外部类 public static void main... -
Java内部类基本介绍、如何实例化内部类和如何调用外部类属性和方法
2020-06-21 19:32:50一、 Java内部类分类: 1.非静态成员内部类: 内部类没有使用static关键字修饰,并且和外部类的成员变量和方法属于同一级别,这样的是非静态成员内部类(可以使用权限修饰符修饰,和final、abstract关键字修饰)。 ... -
Java 内部类实例化
2017-07-24 16:29:33Java内部类实例化写法感觉好怪异: public class ComboboxResponse { private List dataItems = new ArrayList(); public List getDataItems() { return dataItems; } public void setDataItems(List ... -
Java内部类及其实例化
2018-06-12 13:45:43在 Java 中,允许在一个类(或方法、语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class)。内部类和外层封装它的类之间存在逻辑上的所属关系,一般只用在定义它的类或语句块之内... -
java内部类实例化对象
2016-10-13 10:04:14//在内部类(Inner Class),可以随意的访问外部类的成员, //这可让我们更好地组织管理我们的代码,增强代码的可读性 Person p = new Person(); Person s = p.new Student(); Person w = p.new Worker();... -
java内部类实例化错误
2013-12-01 09:41:35为什么静态方法里不能直接调用内部类,成员方法却可以? package com.zcl5; class Quetion1 { class ATM { int myMoney = 100; int viewMoney(){ return myMoney; } void outMoney... -
接口实例化——匿名内部类
2018-04-27 19:03:33接口实例化——匿名内部类 public Interface IFly { void fly(); } public class Bird { public Bird() { } public void fly(IFly f) { f.fly(); } } public class Test { public static ... -
Java对象实例化(匿名内部类)
2017-06-07 13:54:29静态代码块是static 关键字 + 大括号,把静态代码块儿的static关键字去掉就是实例化代码块儿,静态代码块儿在类初始化的时候执行一次 实例化代码块在每次生成对象的时候都会执行(实例化代码块儿会先于构造方法执行)... -
【面向对象编程】(1) 类实例化的基本方法
2022-01-02 12:38:161. 最基本的类实例化 创建类的方法是 class 变量名:,实例化方法是 类名() ,分配属性的方法是 实例名.属性名 = 值 #(1)创建类 class Item: # 创建类的方法是 class 类名: pass # 不执行任何内容 #(2)实例... -
Java使用new和反射实例化内部类对象
2017-03-07 16:09:25java使用new和反射实例化内部类对象 前两天看到一道面试题,是关于内部类的知识,觉得很有意思,现对其详细讲解,绝对原创!~ 这道题是这样的: 根据注释填写(1),(2),(3)处的代码 public class Test{ public ... -
java内部类的实例化
2016-11-19 13:04:52一、实例化内部类 java中的内部类如何实例化?例子: public class Animal{ class Head{ } }测试如何实例化内部类: public class TestInstanceInnerClass{ public TestInstanceInnerClass(){ Animal ... -
Java如何在main方法中实例化内部类对象
2019-03-11 15:33:42今天我在实例化一个类是编译器报以下错误: No enclosing instance of type Person is accessible. Must qualify the allocation with an enclosing instance of type Person (e.g. x.new A() where x is an ... -
python--类的实例化
2021-01-14 18:50:081、类的定义和语法View Code2、self关键字self这个关键字相当于实例化对象本身(self相当于d),在实例化过程中,把自己传进去了3、函数__init__() 、__del__()在类中__init__()函数叫构造函数,又叫构造方法,也可以... -
JAVA编程心得-无法实例化同包其他类的内部类的问题
2013-07-25 15:57:18当我们有多个类时,实例化自身的内部类很简单,直接通过类名就可以实例化。 可是当我们需要实例化同包类的内部类时,直接使用类名就无法直接访问内部类了,下面我用一个例子简单描述一下解决办法。 package... -
Java静态内部类的实例化问题
2015-12-15 15:56:21静态内部类可以被实例化! 1.首先在外部类中的static方法中不能使用普通内部类,因为内部类必须要与外部类建立关联才能使用,可以说是同生共死。 2.我在编码过程中,需要2个类共同完成一个功能,其中一个工具类只... -
android 内部类的实例化
2015-05-12 02:28:23如何实现内部类的实例化呢,我的代码错误Unable to instantiate application android.app.Application: java.lang.NullPointerException dev_item.class ``` public class dev_item { static public final byte ... -
关于在外部对内部类进行实例化和引用
2016-10-06 16:47:57有些时候在写一些小的项目或者demo时,为了方便或者逻辑上归类往往定义一些内部类,比如一些小型的model,各种Adapter、BroadcastReceiver等等。 例如: class A{ static class B{ public void put(){ System.... -
Java内部类和匿名内部类的用法
2016-07-21 15:46:41Java内部类和匿名内部类的用法 【尊重原创,转载请注明出处】http://blog.csdn.net/guyuealian/article/details/51981163一、内部类: (1)内部类的同名方法 内部类可以调用外部类的方法,如果内部类有同名方法... -
实例化servlet类时出错
2021-03-15 20:49:12这是我的index.html 这是我的web.xml`submitFormstudent.StudentSurveyFormSubmitsubmitForm/submitForm`还有我的servlet类package student; @WebServlet("/StudentSurveyFormSubmit") public class ... -
Servletle类实例化错误
2020-09-10 20:42:28Servletle类实例化错误我的探索历程环境:历程:Tomcat和Servlet HTTP状态 500 - 内部服务器错误 类型 异常报告 消息 实例化Servlet类[servlet.ServletHello]异常 描述 服务器遇到一个意外的情况,阻止它完成请求... -
Java的抽象类实例化
2018-03-19 14:35:37即如果一个类含有抽象方法,则称这个类为抽象类。 抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以一般不能用抽象类创建对象。 // 抽象类 public abstract class ClassName { /... -
C#——类的实例化
2018-05-04 14:26:02类:类是模子,确定对象将会拥有的特征(属性)和特征和行为(方法)类的实例化:(通过类来产生对象,就叫做类的实例化,即一个实例就是一个对象) 1.类的实例化,用关键字new 语法: 类 实例名 = new 类(); ...