`
想学跑的猪
  • 浏览: 15316 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

黑马程序员_内部类

阅读更多

            ------ android培训java培训、java基础学习技术总结、期待与您交流! ----------

 

内部类:定义在类里面的类
     1.内部累访问规则
          内部累可以直接访问外部类中的成员,包私有的
          外部类要访问内部类,必须减累内部类对象
        内部类之所以可以访问外部类的成员,是因为内部累持有外部类的一个引用  格式 外部类名.this
     2.访问格式
      当内部类建立在外部类成员位置上,而且非私有,可以在外部其他类中,可以直接定义内部累对象
       格式:
         外部类名.内部类名 变量名=new 外部类对象.内部类对象;
         当内部类在成员位置,可以被修饰符修饰
            比如private,将内部类在外部类中进行封装
                   static,静态内部类只可以访问外部类的静态成员,出现了访问局限
     *在外部其他类中如何直接访问static内部类的非静态成员呢?
     *new Outer.Inner().function();
     *在外部其他类中,如何直接访问内部累的静态成员呢?
     *Outer.Inner,function();
     *内部类中定义静态成员,那么该内部类必须是静态类
     *当外部类中的静态方法访问内部类时,内部类也必须是静态的。
     *
     *当描述事物是,事物的内部还有事物,可以用内部类来描述
     *因为内部事物在使用外部事物的内容
     *当内部事物想要直接访问外部事物的内容时,将内部事务定义在外部事物中,代码是最优的。
     *创建内部类时,把内部类封装在外部类中,提供一个外部访问的方法。不允许外部其他类直接访问。

示例1如下:

class Outer{
	int num=4;
	void method(){
		Inner in=new Inner();
		in.function();
		System.out.println("outer:"+num);
	}
	class Inner{
		int num=5;
		void function(){ 
			int num=6;
			System.out.println("innner:"+Outer.this.num);
		}
	}
}
public class InnerDemo {
	public static void main(String[] args) {
		Outer out=new Outer();
		out.method();
		Outer.Inner in=new Outer().new Inner();
	}

}

 示例2如下:

class Outer2{
	 static class Inner{
		static void show(){ 
			System.out.println("innner2:");
		}
	}
	public static void method(){	
	     Inner.show(); 
	}
}
public class InnerDemo2 {
	public static void main(String[] args) {
		Outer2.method();
	}

}

 示例3如下:

class Body{ 
	private class Heart{
		public void method(){
			System.out.println("跳动!");
		}
	}
	public void show(){
		new Heart().method();
	}
	
}
public class InnerDemo {
	public static void main(String[] args) {
		new Body().show();
	}

}

 

            ------ android培训java培训、java基础学习技术总结、期待与您交流! ----------

分享到:
评论

相关推荐

    01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.zip

    【标题】"01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.zip" 提供的是一门由黑马程序员机构推出的Java基础强化课程,由讲师张孝祥主讲,旨在深入讲解Java编程的基础知识并进行能力提升。 【描述】中提到...

    黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件).zip

    除了直接实现ActionListener接口,还可以使用匿名内部类或者Java 8的Lambda表达式来简化代码。例如,使用Lambda表达式可以这样写: ```java button.addActionListener(e -> { System.out.println("Button clicked...

    黑马程序员_java8新特性详解笔记和源码

    Java 8是Java语言发展的一个重要里程碑,引入了许多创新性的特性和改进,...黑马程序员的Java8新特性详解笔记和源码提供了深入学习这些概念的资源,结合实际的代码示例,将有助于你更好地理解和掌握Java 8的核心特性。

    黑马程序员Javase笔记

    同时,可以使用匿名内部类创建自定义的比较器来定制排序规则。 总结来说,"黑马程序员Javase笔记"涵盖了Java的基础语法、内存管理、面向对象编程、集合框架以及泛型和Map等内容,这些都是成为一名合格Java开发者...

    黑马程序员_Java基础辅导班教程课件[第01期]第7天

    2. **封装**:封装是面向对象编程的三大特性之一,它隐藏了对象的内部细节,仅通过公共接口(方法)与外界交互,以提高代码的安全性和可维护性。 3. **继承**:继承允许一个类(子类)继承另一个类(父类)的属性和...

    黑马程序员入学面试题

    匿名内部类是一种特殊的内部类,它没有名称,并且通常在创建时立即实例化。它可以简化代码,但在某些场景下可能会导致内存泄漏等问题。 #### 17. IO体系 Java的IO体系主要包括字节流(InputStream/OutputStream)和...

    黑马程序员入学Java精华总结

    ### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...

    黑马程序员struts2框架2016版资料

    "黑马程序员"是一家知名的编程教育机构,他们提供的Struts2框架教程资料旨在帮助开发者深入理解和掌握这一技术。 Struts2的核心特性包括: 1. **Action类**:它是业务逻辑处理的主要载体,继承自`ActionSupport`类...

    Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    本资料包“Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar”提供了一个深入学习Java IO流的全面资源,包含实例题目、源代码以及PPT教学材料,适合对Java IO有进阶需求的开发者。 1. **Java ...

    黑马程序员Android视频教程

    ### 黑马程序员Android视频教程知识点解析 #### 一、Android基础概述 - **定义与特点**:Android是一种基于Linux内核(不包括GNU组件)的开源操作系统,主要用于移动设备。它由Google公司及其领导下的开放手机联盟...

    java并发库高级应用源码--张孝祥

    Java提供了多种线程安全的数据结构,如`Atomic`系列类、`ConcurrentHashMap`等,它们在内部实现了线程安全,避免了外部同步的需要。 线程锁技术包括内置锁(也称为监视器锁)和显式锁。内置锁是`synchronized`的...

    Java-集合的例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    本资料包是黑马程序员提供的详细教程,涵盖了Java集合的例题、源码以及配套的PPT教学文档,旨在帮助学习者深入理解和掌握Java集合的使用。 首先,我们来探讨Java集合框架的基本概念。Java集合框架包括接口和实现类...

    中关村黑马程序员训练营android-4.0视频下载地址

    根据提供的信息,我们可以总结出以下关于“中关村黑马程序员训练营Android-4.0视频”的相关知识点: ### 一、概述 “中关村黑马程序员训练营Android-4.0视频”是一套针对Android开发初学者和进阶学习者的培训课程...

    黑马程序员入学Java知识(精华总结)

    ### 黑马程序员入学Java知识(精华总结) #### 一、Java概述与基础知识 ##### 1、何为编程? 编程是指使用计算机语言来编写指令,这些指令被计算机执行以完成特定任务的过程。通过编程,我们可以控制计算机的行为...

    黑马程序员JAVA面试宝典2018年5月最新版

    同时,可能还会涉及访问修饰符、构造器、静态成员和内部类等相关知识点。 在JVM内存管理方面,面试宝典会介绍堆内存、栈内存、方法区、垃圾收集机制等,以及如何通过分析内存泄漏和性能优化来提升程序效率。 多...

    黑马程序员面试宝典(java).7z

    此外,还会涉及到异常处理、接口、内部类和匿名类等内容。 2. **集合框架**:面试中经常会问到ArrayList、LinkedList、HashMap、HashSet等集合类的原理和使用,以及并发容器如ConcurrentHashMap、...

    集合-黑马程序员Java学习笔记

    本学习笔记由黑马程序员提供,旨在帮助初学者深入理解Java中的集合框架及其使用方法。 首先,我们来探讨“集合”的基本概念。在Java中,集合是一个对象容器,可以容纳多个元素,这些元素可以是任意类型的数据。Java...

    2014黑马程序员JAVA基础测试题

    在内部类中可以直接使用外部类的成员,而在外部类中,需要通过创建内部类的对象来调用内部类的方法。 9. 拷贝.java文件并修改扩展名:可以使用Java的File和FileInputStream、FileOutputStream类,配合FileVisitor...

    C++程序设计教程第二版课后习题答案

    4. **封装**:通过类,C++实现了数据封装,隐藏了对象的内部实现细节,只对外提供公共接口,提高了代码的安全性和可维护性。 5. **继承**:C++支持单一继承和多重继承,一个类可以从另一个类派生,继承其属性和方法...

    黑马程序员入学Java知识

    ### 黑马程序员入学Java知识 #### Java概述与基础知识 1. **何为编程?** - 编程是通过特定的计算机语言来编写指令,让计算机执行一系列任务的过程。 2. **Java语言概述,历史、特点** - **概述**:Java是一种...

Global site tag (gtag.js) - Google Analytics