`
googlelc
  • 浏览: 56652 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java学习笔记(二十)内部类

 
阅读更多

内部类:


1.1 什么是内部类?


# 一个类的内部还有类,就成为内部类。如果在类outer的内部再定义一个类inner,此时类inner就称为内部类,而类outer则称为外部类。

# 内部类可以声明为public或private,此时对其访问的限制于成员变量和方法完全相同。

1.2 内部类的定义格式


标示符 class 外部类的名称{
//外部类的成员
标示符 class 内部类的名称
{
//内部类的成员
}
}

class Outer
{
 private String info="hello,word!";
 class Inner
 {
  public void print(){
  System.out.println(info);
  }
  
 };
 public void fun(){
 new Inner().print();
 }
};
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}



结果为:

F:\java>javac Inner01.java

F:\java>java Inner01
hello,word!

1.3:内部类的缺点:

1:正常的一个类操作时,在类中最好只定义属性或方法。如果定义一个类的话,就破坏了程序的一个结构。

优点:

将以上的两个类变成两个独立的类,在分析:

class Outer
{
 private String info="hello,word!";
 
 public void fun(){
 new Inner().print();
 }
 public String getInfo(){
 return this.info;
 }
};
class Inner
 {
  public void print(){
  System.out.println(new Outer().getInfo());
  }
  
 };
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}


以上程序实例了两个Outer对象,显然不合适:

可以这样改:


class Outer
{
 private String info="hello,word!";
 
 public void fun(){
 new Inner(this).print();
 }
 public String getInfo(){
 return this.info;
 }
};
class Inner
 {
  private Outer out=null;
  public Inner(Outer out){
  this.out=out;
  }
  public void print(){
  System.out.println(new Outer().getInfo());
  }
  
 };
public class Inner01
{
 public static void main(String args[]){
 new Outer().fun();
 }
}



结果为:


F:\java>javac Inner01.java

F:\java>java Inner01
hello,word!


:1.4:

如果内部类拿到外部以后,会发现代码增加了,而且复杂度也增加了,使用内部类的最大优点:可以方便访问外部类中的私有属性。

但是以上的内部类是无法在外部直接使用的,

1.5:使用static声明内部类


如果一个内部类使用static关键字声明,则此内部类就成为外部类,可以直接通过外部类进行访问。


分享到:
评论

相关推荐

    Java学习笔记——良葛格

    "Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...

    Java学习笔记(必看经典).pdf

    本知识点的标题为“Java学习笔记(必看经典)”,意味着所整理的内容是针对Java初学者的一系列核心概念和原理的总结。 首先,面向对象编程是Java语言的核心,它与传统的面向过程编程有显著的不同。面向对象编程强调的...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    java学习笔记(内部类)汇集

    ### Java学习笔记——内部类详解 #### 一、引言 Java中的内部类是一个非常有用但又容易让人感到困惑的概念。内部类本质上是在另一个类的内部定义的类,它可以访问外部类的所有成员变量和方法,甚至是私有成员。...

    Java学习笔记(必看经典).doc

    这份“Java学习笔记(必看经典).doc”文档将涵盖Java的核心概念和重要知识点,对于初学者和有经验的开发者来说都是宝贵的参考资料。 首先,Java的基础部分通常包括以下几个方面: 1. **Java语法基础**:这是所有...

    瑜琅java学习笔记

    ### 瑜琅Java学习笔记概览 瑜琅的Java学习笔记涵盖了Java的基础概念与核心特性,从起源到高级特性均有涉及。以下是对该学习笔记各部分的深入解析: #### 1. Java起源 ##### 1.1 发展背景 - Java的诞生源于Sun ...

    Java学习笔记整理

    这些学习笔记将带你深入了解Java的核心概念,特别是面向对象编程和集合框架。以下是对每个文件内容的详细阐述: 1. **Day0804_HashMap的基本使用.docx**:HashMap是Java集合框架中的一个重要组件,它提供了键值对的...

    JAVA学习笔记.pdf

    JAVA学习笔记.pdf 中讲解了JAVA语言的基础知识,包括类的基本知识、成员变量、成员方法、类的实例、内部类、匿名类、接口、包等。 类的基本知识 在JAVA中,类是对象的蓝图,类的声明语法为:[访问控制符] class ...

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** Java由Sun Microsystems公司于1995年推出的一种可移植、面向对象的编程语言。最初的设计目标是为消费电子产品提供一种通用编程语言...

    JAVA学习笔记达内内部使用,保证你没有看过

    【Java学习笔记达内内部使用,保证你没有看过】 这篇笔记是针对Java初学者和有一定经验的开发者设计的,由达内教育内部使用的资源,涵盖了从基础到进阶的全面内容,确保提供了一些鲜为人知的见解和深入理解。笔记...

    Java学习笔记 经典必看

    ### Java学习笔记经典知识点解析 #### 一、面向对象编程基础 **面向对象**是一种重要的编程范式,它改变了传统的面向过程的编程思路,强调通过对象来组织代码,提高代码的复用性和维护性。 **面向对象的核心概念*...

    Java基础尚硅谷宋红康学习笔记

    内部类(包括成员内部类、局部内部类、匿名内部类)是Java特有的特性,允许在类内部定义其他类。 【Java高级】 Java高级部分涵盖了更复杂的特性和技术,包括: 1. **反射**:Java反射机制允许在运行时检查类的信息...

    java学习笔记 初学者必读

    7.11.1. 内部类的分类 7-29 7.11.2. 成员内部类 7-29 7.11.3. 局部内部类 7-30 7.11.4. 静态内部类 7-30 7.11.5. 匿名内部类 7-31 7.12. 集合 7-31 7.12.1. 集合接口类层次 7-32 7.12.2. 集合类层次 7-33 7.12.3. 五...

    Java学习笔记 必看经典 pdf

    1. **定义类**:在Java中,类的定义遵循特定的语法规范,如`class Student{...}`,其中类名通常首字母大写。 2. **实例变量与局部变量**:实例变量是在类中定义但在方法之外声明的变量,它们属于对象本身;局部变量...

    JAVA学习笔记

    JAVA学习笔记是一个全面涵盖JAVA编程基础到进阶的资源集合,特别适合初学者掌握JAVA语言和项目开发技术。笔记内容包括了几个核心领域,如编程思想、多线程设计模式、网络编程,以及JAVA的新输入/输出(NIO)系统。 ...

    Java开发学习笔记

    Java开发学习笔记主要针对的是初学者,旨在帮助他们掌握Java编程的基础知识。下面将详细讲解Java开发中的核心概念和步骤。 一、Java环境变量设置 在开始Java编程之前,我们需要安装Java Development Kit (JDK)并...

    Java学习笔记(必看经典)

    总的来说,Java的学习不仅仅是语法的学习,更重要的是理解面向对象编程的思想,掌握如何通过类和对象来组织和管理代码,以及如何利用封装、继承和多态来构建可扩展和可维护的系统。通过不断的实践和理解,可以逐步...

Global site tag (gtag.js) - Google Analytics