JAVA 创建内部类的对象

 1 package Demo519;
 2 /*
 3 类的第五个成员,内部类
 4 1.在类的内部在定义类
 5 2.内部类的分类:成员方法内部类(放在方法外)
 6   <1>如何创建内部类的对象
 7   <2>如何区分调用外部内,内部类的变量
 8   <3>局部内部类的使用
 9  */
10 public class TestInnerClass {
11     public static void main(String[] args) {
12         //创建静态内部类的对象,可以直接通过外部类调用静态内部类的构造器
13         Person1.Dog d= new Person1.Dog();
14         Person1 p= new Person1();
15         Person1.Bird b= p.new Bird();
16         b.info();
17
18     }
19 }
20 class Person1{
21     String name;
22     int age ;
23     //成员内部类(非static的)
24     class Bird{
25         String name;
26         int id ;
27         public Bird(){
28
29         }
30         public void setName(String name){
31
32         }
33         public void info(){
34             show();
35         }
36     }
37     //静态的
38     static class Dog{
39
40     }
41     public void show(){
42         System.out.println("我是show方法");
43     }
44     public void method1(){
45         class A{
46
47         }
48     }
49 }

运行代码↓

原文地址:https://www.cnblogs.com/Ssinoo/p/10889000.html

时间: 2024-10-12 07:18:08

JAVA 创建内部类的对象的相关文章

[Effective Java]创建和销毁对象

第一条:考虑用静态工厂方法代替构造器 使用静态工厂方法的优势: 静态工厂方法具有名称,具有适当名称的方法更易阅读. 具有多个构造器的类用户往往不知道该用哪个,可考虑提供多个合适命名的静态工厂方法. 相比于构造器,不必再每次调用时都创建一个新对象 不可变类可以预先创建好实例,或者将构件好的实例缓存起来,从而避免重复创建对象.此方法类似于Flyweight模式.如果程序经常请求创建相同的对象,并且创建对象的代价很高,此项技术可以极大地提升性能.  可以返回原返回类型的任意子类型 在选择返回对象的类时

内部类访问外部类的变量必须是final吗,java静态方法中不能引用非静态变量,静态方法中不能创建内部类的实例

内部类访问外部类的变量必须是final吗? 如下:class A{int i = 3;public void shout(){ class B{public void shout1(){System.out.println(i);} }B b=new B();b.shout1();} public static void main(String [] args){A a=new A();a.shout();} }可正常输出3,证明可以访问类的变量i,但改为下面的方式:class A{public

【Effective Java】创建和销毁对象

一.考虑用静态工厂方法代替构造器 构造器是创建一个对象实例的最基本最常用的方法.开发者在使用某个类的时候,通常会使用new一个构造器来实现,其实也有其他方式可以实现的,如利用发射机制.这里主要说的是通过静态类工厂的方式来创建class的实例,如: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 静态工厂方法和构造器不同有以下主要优势: 1.有意义的名称. 可能有多个构造器,

深入理解Java:内部类

什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限).内部类主要有以下几类:成员内部类.局部内部类.静态内部类.匿名内部类 内部类的共性 (1).内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 . (2).内部类不能用普通的方式访问. (3).内部类声明成静态的,就不能

Java中内部类揭秘(一):外部类与非静态内部类的”相互可见性“

声明:本博客为原创博客,未经允许,不得转载!原文链接为 http://blog.csdn.net/bettarwang/article/details/27012421. 我们都知道,非静态内部类可以访问外部类的私有成员(包括私有变量和方法),这也正是使用非静态内部类与普通类的一个重要区别:非静态内部类是依赖于外部类对象而存在的,这种依赖就包括它要能自由地访问外部类对象的所有成员(因为private成员都可以访问了,其他权限的成员更不在话下.不过一般来说一个内部类只会访问外部类的部分成员而不是全

JAVA基础——内部类详解

JAVA内部类详解 在我的另一篇java三大特性的封装中讲到java内部类的简单概要,这里将详细深入了解java内部类的使用和应用. 我们知道内部类可分为以下几种: 成员内部类 静态内部类 方法内部类 匿名内部类 这里我们先将以这个分类来详细了解各个内部类的情况.然后给内部类作出总结. 一.成员内部类 内部类中最常见的就是成员内部类,也称为普通内部类.我们来看如下代码: 运行结果为: 从上面的代码中我们可以看到,成员内部类的使用方法: 1. Inner 类定义在 Outer 类的内部,相当于 O

java基础内部类(毕向东老师)

内部类//特点:内部类可以直接访问外部类的成员,//外部类要访问内部类中的成员必须创建内部类的对象. //为什么要定义内部类呢?类是用于描述事物的,而事务中如果还有具体的事物,而且这个内部的事物在访问着所属事物中的内容,这时这个内部的事物,也需要用到类来描述.这个类就是内部类.为什么内部类可以直接访问外部类的成员?因为内部类都持有一个外部类的引用.外部类名.this. static class Inner{int num=5;void method(){{int num=6;System.out

Javascript创建类和对象

现总结一下Javascript创建类和对象的几种方法: 1.原始的创建方法: 1 <script type="text/javascript"> 2 var person = new Object(); 3 person.name="Amy"; 4 person.sex="Woman"; 5 person.show=function(){ 6 document.write("name is: "+this.name

java(内部类)

内部类: 一个类定义在另外一个类的内部就称作为内部类. 内部类的类别: 1.成员内部类: 2.局部内部类: 1.成员内部类: 成员内部类的访问方式: 方式一:在成员内部类的外侧提供一个方法创建内部类的对象进行访问,其它类使用时,创建该成员内部类的外部类的对象,由外部对象调用在外部类外侧的方法. 方式二:在其他类直接创建内部类的对象. 格式:外部类.内部类 变量名 = new 外部类().new 内部类(); 注意:如果是一个静态内部类,那么在其他类创建的格式: 外部类.内部类 变量名 = new