内部类练习题(外部类访问内部类成员、内部类访问外部类成员、顶级类访问内部类成员)

package com.Summer_0429.cn;

/**
 * @author Summer
 * 内部类实例:
 * 定义一只猫类,猫有:
 * 1、重量
 * 2、猫的身体:
 *     1)颜色
 *     2)显示猫的身体的信息();
 * 3、显示猫的整体信息();
 * 要求:创建一只小猫,显示它的整体信息。
 *
 */
class Cat{
    private double weight;
    public Cat(double weight){
        this.weight = weight;
    }
    //内部类:成员内部类
    class CatBody{
        private String color;
        public CatBody(String color) {
            this.color = color;
        }
        public void show(){
            //内部类中可以直接访问外部类的成员
            //每一个内部类对象中都会隐藏一个外部类对象,外部类.this
            //System.out.println("颜色:"+color+Cat.this.weight);
            System.out.println("颜色:"+color+weight);
        }

    }
    public void display(){//外部类
        //外部类,访问内部类的成员
        CatBody body = new CatBody("白色");
        body.show();
        System.out.println("体重:"+weight);
    }

}

public class TestInner {

    public static void main(String[] args) {
        Cat cat = new Cat(10);
        cat.display();
        //在一个顶级类中调用内部类方法的语法结构,需要一个外部类的实例对象来创建
        Cat.CatBody body = cat.new CatBody("黑色");
        body.show();
    }

}

原文地址:https://www.cnblogs.com/summerdata/p/10792586.html

时间: 2024-08-15 17:14:38

内部类练习题(外部类访问内部类成员、内部类访问外部类成员、顶级类访问内部类成员)的相关文章

黑马程序员-Java基础-面向对象—多态、Object类、内部类、异常

第一讲  多态 1.  定义 可以理解为事物存在的多种体现形态. 在java中,当函数的功能内容不确定时,可以将此方法定义为抽象方法,让其子类去实现.当子类对象不同时,调用同一个函数名,会执行不同的函数体,得到不同的结果,从而体现了多态性. 2.  多态的体现形式 父类的引用指向了自己的子类对象:Fu f = new Zi(): 父类的引用也可以接受自己的子类对象: 3.  多态的前提条件 必须是类与类之间有关系,要么继承,要么实现(接口): 函数之间存在覆盖(重写): 4.  多态的好处 大大

C++嵌套类(内部类与外部类)

在一个类中定义的类被称为嵌套类,定义嵌套类的类被称为外部类.对类进行嵌套通常是为了帮助实现另一个类,并避免名称冲突. 对类嵌套往往为了帮助实现另一个类,并避免名称冲突.如下: class queue { private: struct Node{ Item item;struct Node *next }; ... }; 由于struct在默认情况下其成员为公有的,   所以Node实际上是一个嵌套类. 作用域 嵌套类的声明位置决定了嵌套类的作用域,即它决定了程序的那部分可以创建嵌套类的对象.

内部类(嵌套类、内置类)访问规则、定义原则、静态内部类、匿名内部类

一.内部类 1.内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有.之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式为:外部类明.this 2.外部类要访问内部类,必须创建内部类对象. 2.访问格式 1.当内部类定义在外部类的成员位置上是,而且非私有,可以在外部其他类中 可以直接建立内部类对象 格式: 外部类明.内部类名 变量名=外部类对象.内部类对象: Outer.Inter in=new Outer().new Inner(); 2.当内部类在成员

其他类如何访问一个类的内部类?

第一步:首先实例化内部类所在的外部类. 第二步:使用外部类.内部类的形式实例化内部类 public class Outer{ public class Inner{ ... } } public class Other{ public static void main(String args[]){ Outer out=new Outer(); Outer.Inner in=out.new Inner(); //..通过in来访问内部类即可. } } 其他类如何访问一个类的内部类?,布布扣,bu

java中内部类的创建四种情况,三种方式,及内部数据访问权限

内部类和外部类的关系,及内部静态类的数据访问权限,声明方式. 第一种,在外部类内部声明使用内部类,内部类的类型为static和非 static类型,内部类数据类型为private,protected,public 类型的访问权限.外部类为非静态声明和权限如下: package com; public class Test1 { //@author 张春蕾 private class Name{ private int i =1; public int s = 2; protected int m

内部类练习题(静态内部类应用)

package com.Summer_0429.cn; /** * @author Summer * 静态内部类的应用 * 示例: * 定义一所学校,学校有: * 饮水机:WaterFountain * 水量 * 管理饮水机(): * * 要求:创建一所学校,访问饮水机的水量 * */ class School{ static int ssn = 33; static class WaterFountain{ int n = 11; static int sn = 22; public void

匿名类、内部类、匿名内部类-转

http://xdwangiflytek.iteye.com/blog/1340872   原文地址 前端时间在写.net项目中,一直错将.cs里的两个class当作内部类,原来是一个文件里的两个类而已,这让我想起了Java中的内部类,比较内部类,那么还有两个类,那就是匿名类和匿名内部类.今天我想就Java中的这三种类进行个比较. 我们知道在Java语言规范中可以做很多事,例如一个类或一个接口中可以声明一个类或接口,在一个方法中可以声明一个类,类与接口声明可以嵌套任意深度等. 匿名类: 1.ne

深入理解java嵌套类和内部类

一.什么是嵌套类及内部类 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类(inner).嵌套类从JDK1.1开始引入.其中inner类又可分为三种: 其一.在一个类(外部类)中直接定义的内部类: 其二.在一个方法(外部类的方法)中定义的内部类: 其三.匿名内部类. 下面,我将说明这几种嵌套类的使用及注意事项. 二.静态嵌套类 如下所示代码为定义一个静态嵌套类

Java中的嵌套类和内部类

以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很大的疑惑:嵌套类跟内部类有什么区别?只有是否有关键字static的区别吗? 所以今天找了个时间查了一下两者的详细区别,总结在这篇博客中,既方便自己的复习和学习,也启示他人吧. 1,概念: 定义在一个类内部的类,叫作"嵌套类".嵌套类分为两种:static的和非static的.后者又有一个专