`
yhalg1314
  • 浏览: 14053 次
  • 性别: Icon_minigender_2
  • 来自: 济南
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java学习笔记---11.面向对象编程06-Java的内部类及对象数组

    博客分类:
  • java
阅读更多
1. Java的内部类机制

      所谓内部类,是指在一个类的内部还有另外一个类的定义. 在Java中,可以在类的内部定义内部类, 也可以在方法内部定义一个类.

      对于第一种形式,即类的内部定义一个新类,比较简单,举例如下:      view plaincopy to clipboardprint?
class Outer //外部类  
{  
    private String name = "newsainton";  
      
    class Inner //内部类  
    {  
        //内部类可以调用调用外部类的私有属性name,并打印之.  
        public void printName()  
        {  
            System.out.println("name = "+name);  
        }  
    }  
      
    //定义一个外部类的方法,调用内部类的方法  
    public void print()  
    {  
        new Inner().printName();  
    }  
}  
class OODemo04  
{  
    public static void main(String args[])  
    {  
        //先产生一个外部类对象  
        Outer out = new Outer();  
        //调用外部类的打印方法  
        out.print();  
    }  
}
class Outer //外部类
{
private String name = "newsainton";

class Inner //内部类
{
   //内部类可以调用调用外部类的私有属性name,并打印之.
   public void printName()
   {
    System.out.println("name = "+name);
   }
}

//定义一个外部类的方法,调用内部类的方法
public void print()
{
   new Inner().printName();
}
}
class OODemo04
{
public static void main(String args[])
{
   //先产生一个外部类对象
   Outer out = new Outer();
   //调用外部类的打印方法
   out.print();
}
}

      而对于第二种,在方法体内定义内部类, 有需要注意的地方就是: 在方法体内定义的内部类,可以访问外部类的任意属性,但是不能直接访问方法中的参数变量.

      如果需要让内部类访问方法的参数变量,需要在方法参数前加上"final"关键字.

      举例如下:      view plaincopy to clipboardprint?
class Outer //外部类  
{  
    private String name = "newsainton";  
    public void fun(final int i)//在方法内定义内部类  
    {  
        //若内部类要访问这里的i和j,需要将i&j设置为final  
        final int j = 10;  
        class Inner //内部类  
        {  
            //内部类可以调用调用外部类的私有属性name,并打印之.  
            public void printName()  
            {  
                System.out.println("name = "+name);  
                System.out.println("i + j = "+(i+j));  
            }  
        }  
        new Inner().printName();  
    }  
}  
class OODemo05  
{  
    public static void main(String args[])  
    {  
        //先产生一个外部类对象  
        Outer out = new Outer();  
        //调用外部类的打印方法  
        out.fun(13);  
    }  
}
class Outer //外部类
{
private String name = "newsainton";
public void fun(final int i)//在方法内定义内部类
{
   //若内部类要访问这里的i和j,需要将i&j设置为final
   final int j = 10;
   class Inner //内部类
   {
    //内部类可以调用调用外部类的私有属性name,并打印之.
    public void printName()
    {
     System.out.println("name = "+name);
     System.out.println("i + j = "+(i+j));
    }
   }
   new Inner().printName();
}
}
class OODemo05
{
public static void main(String args[])
{
   //先产生一个外部类对象
   Outer out = new Outer();
   //调用外部类的打印方法
   out.fun(13);
}
}

      使用内部类的优缺点是:

(1)优点: 使用内部类可以直接访问外部类的私有属性;

(2)缺点: 含有内部类的程序,代码结构不很好.


--------------------------------------------------------------------------------

2. Java的对象数组

      对象数组个概念应用几乎与数组一致,不同的是, 对象数组是一组相同类型对象而组成的集合,因此初始化时,对象的默认值是null.

      与数组类型一样, 对象数组的声明和初始化采取的是: 类名称[] 对象数组名称 = new 类名称[对象个数] 的方法, 使用方法与数组类似,例如 要取得对象数组的长度也是使用对象数组名称.length O(∩_∩)O~

分享到:
评论

相关推荐

    java学习笔记 初学者必读

    6.1. 面向对象与面向过程 6-11 6.2. 对象的概念 6-12 6.3. 成员变量和局部变量 6-12 6.4. 成员方法 6-12 6.5. This关键字 6-13 6.6. 访问控制符 6-13 6.7. 构造方法 6-13 6.8. 数据和方法的隐藏―――封装 6-14 6.9....

    Java/JavaEE 学习笔记

    Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...

    java学习笔记-java思维导图流程图表格整理

    Java学习笔记 1 命令行运行 1 Java基础 1 注释 1 单行注释 1 多行注释 1 文档注释 1 标识符和关键字 2 数据类型 4 类型转换 7 变量 9 基本运算符 10 包机制 12 Javadoc 12 使用命令行生成 12 使用idea生成 12 Java...

    Java学习笔记-个人整理的

    {2.1.3}面向对象的编程}{47}{subsection.2.1.3} {2.2}继承}{48}{section.2.2} {2.2.1}super(), this()}{49}{subsection.2.2.1} {2.2.2}方法重写/覆盖}{50}{subsection.2.2.2} {2.3}修饰符}{51}{section.2.3} ...

    J2EE学习笔记(J2ee初学者必备手册)

    Core Java学习笔记...........31 第一章 JAVA前言..31 第二章 标识符,关键字,类型........35 第三章 表达式与流控制....................41 第四章 数组.............50 第五章 对象和类(OO思想).........53 第...

    java内部学习笔记.docx

    面向对象 16 3.1类 16 3.2对象 16 3.3包 16 3.4方法及其调用 17 3.5引用 17 3.6访问控制(封装) 17 3.7构造器 17 3.8 super()、super.和 this()、this. 18 3.9重载和重写 19 3.10继承 20 3.11 static 23 3.12 ...

    Java开发详解.zip

    000000_【课程介绍 —— 写在前面的话】_Java学习概述笔记.pdf 010101_【第1章:JAVA概述及开发环境搭建】_JAVA发展概述笔记.pdf 010102_【第1章:JAVA概述及开发环境搭建】_Java开发环境搭建笔记.pdf 010201_【第2...

    Java疯狂讲义课后习题答案

    因此,我们可以使用该工具来快速...疯狂Java讲义笔记汇总 目录 一、基础类型 二、流程控制与数组 三、面向对象 四、基础类库 五、集合 六、泛型 七、异常 八、数据库 九、注释 十、输入输出 十一、网络 十二、类加载机制

    达内 CoreJava老师笔记汇总

    CoreJava DAY11 内部类 70 CoreJava DAY12 集合 List 78 CoreJava DAY13 集合 Set 85 CoreJava DAY14 集合 Map 92 CoreJava DAY15 异常、断言 98 CoreJava DAY16 反射、注释 108 CoreJava DAY17 GUI 120 CoreJava ...

    java各知识点详细总结(毕向东笔记整理)

    第一章:编程基础 3-11 第二章:数组 11 -31 第三章:面向对象程序开发 31 -74 第四章:异常机制 74 -89 第五章:多线程技术 89 -122122122 第六章:常用类 API 122API 122 API 122API 122API 122API 122API 122-...

    JavaSE基础学习笔记

    面向对象编程 初识面向对象 面向过程 &面向对象 什么是面向对象 方法回顾和加深 对象的创建分析 类与对象的关系 创建与初始化对象 小结 对象的内存分析 小结 1、类与对象 2、方法 3、对象的引用 4、属性:字段Field ...

    狂神说Java 笔记,java入门,docker ,spring 全家桶,redis , mysql , vue , javascript ,htm5, css

    6、JavaSE:面向对象.pdf 7、JavaSE:异常机制.pdf 8、JavaSE:常用类.pdf 9、JavaSE:集合框架.pdf 10、JavaSE:IO流.pdf 11、JavaSE:多线程.pdf 12、JavaSE:网络编程.pdf 13、JavaSE:Gui编程.pdf 14、...

    Java学习笔记

    2、面向对象:最终是面向接口编程的,封装、继承、多态、设计模式、异常、包 3、JAVA应用开发部分:JAVA类集、JAVA IO、JDBC; 概念和原理方面:线程、类库API(文档)、泛型、枚举、注解、反射、网络等 JAVA中最大...

    JAVA-SE基础知识.pdf

    文档包含for/while/do-while、方法、方法重载、数组、面向对象、单例、重写、多态、抽象类、内部类、异常、String、八大基本数据类型、日期、集合、文件、多线程、网络编程、反射等基础讲解笔记。

    c#学习笔记.txt

    C#学习笔记(2)【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号:日期:2004-07-11 人气:8092 出处: write by cash(天下第七) 2002.01.20 版权所有,翻录不究 cashcao@...

    java基础笔记

    java初学者的学习笔记,很详细。 目录 0 第一节 7月15日 2 一、 IT行业相关介绍 2 二、C、C++和Java语言的比较 2 三、 JDK基础介绍 2 四、 面向对象与面向过程的比较 2 五、 Java相关介绍 2 六、 Path和Classpath...

    net学习笔记及其他代码应用

    34.面向对象的语言具有________性、_________性、________性 答:封装、继承、多态。 35.能用foreach遍历访问的对象需要实现 ________________接口或声明________________方法的类型。 答:IEnumerable 、 ...

    Java基础知识总结(超详细整理)

    本套笔记循循渐进,适合初入计算机行业的小白,从Java概述到语法,再到循环,数组,方法,面向对象,继承,多态,内部类,集合,异常,IO流,多线程,网络编程,Lambda表达式,最后是类加载器,反射,模块化。...

    java8集合源码分析-LearningNotes:Java笔记

    、、基本概念、面向对象、基本数据类型与运算、字符串与数组、异常处理、Object 通用方法 数据结构 & 源码分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

Global site tag (gtag.js) - Google Analytics