JavaSE-内部类

package com.btp.t2;
/*
 * 类的第五个成员:内部类
 * 1.相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类
 * 2.内部类的分类:成员内部类(声明在类内部且方法外)  vs 局部内部类  (声明在方法里)
 * 3.成员内部类:(是类的一个成员,同时也是一个类,所以拥有类和类成员的特点)
 *      3.1 是外部类的一个成员:①可以有修饰符(4个)②可以用static,final,abstract修饰③可以调用外部类的成员和方法
 *      3.2 具体类的特点:①abstract②可以在其内部定义属性,方法,构造器
 * 4.局部内部类:
 *
 * 5.关于内部类:掌握三点
 *    ①创建成员内部类的对象
 *    ②如何区分调用外部类,内部类的变量(尤其是变量重名时)
 *    ③局部内部类的使用
 *
 */
public class TestInnerClass {

	public static void main(String[] args) {
		//创建静态内部类的对象,可以直接通过外部类调用静态内部类的构造器
		Person.Hand h=new Person.Hand();
		//创建非静态的内部类的对象,必须先创建外部类的对象,通过外部类的对象调用内部类的构造器
		Person p=new Person();
		Person.Brain b=p.new Brain();
		b.info();
		b.setName("Joardan");

	}

}

class Person{
	String name="Kobe";
	int age;
	//成员内部类(非static的)
	class Brain{
		String name="James";
		int id;
		public String getName() {
			return name;
		}
		public void setName(String name) {
			//this.name = name;
			System.out.println(name);//Joardan
			System.out.println(this.name);//James
			System.out.println(Person.this.name);//Kobe
		}
		public int getId() {
			return id;
		}
		public void setId(int id) {
			this.id = id;
		}
		public Brain() {
			super();
		}
		public void info(){
			show();
		}

	}
	//成员内部类(静态内部类)
	static class Hand{

	}
	public void show(){
		System.out.println("我是show方法");
	}
	public void method1(){
		//局部内部类
		class A{

		}
	}

	//常常使用一个方法,使其返回值为某个类或接口的对象,而这个类或接口在方法内部创建
	public Comparable getComparable(){
		//1.创建一个实现Comparable接口的类:局部内部类
		class MyComparable implements Comparable{

			@Override
			public int compareTo(Object arg0) {
				// TODO 自动生成的方法存根
				return 0;
			}

		}
		//2.返回一个实现类的对象
		Comparable c=new MyComparable();
		return c;//或者直接return new MyComparable();

	}

	public Comparable getComparable1(){
		//返回一个实现Comparable接口的匿名内部类的对象
		return new Comparable(){

			@Override
			public int compareTo(Object o) {
				// TODO 自动生成的方法存根
				return 0;
			}

		}
		}
	}

}

  

时间: 2024-10-25 04:28:04

JavaSE-内部类的相关文章

JavaSE学习 外部调用内部类的方法(一)

Title:内部类(三)内部类的使用 Time: Author:weir 内部类: 1-在外部类中使用:使用的方式直接使用内部类类名 2-在外部类中使用: 1-条件:内部类不能使用private修饰,使用对应访问修饰符(public protect default)[详细参考访问修饰表] 2-使用方式: 1-非静态内部类实例: 1-创建外部类对象实例 2-通过外部类对象创建内部类 3-内部类的使用 2-静态内部类实例: class Outterclass { // 定义内部类,位置任意 priv

javase基础

目录 目录... 1 第一天... 5 1:计算机概述(了解) 5 2:键盘功能键的认识和快捷键(掌握) 5 3:常见的DOS命令(掌握) 6 4:Java语言概述(了解) 6 5:JDK,JRE,JVM的作用及关系(掌握) 7 6:JDK的下载,安装,卸载(掌握) 7 7:第一个程序:HelloWorld案例(掌握) 7 8:常见的问题(掌握) 8 9:path环境变量(掌握) 8 10:classpath环境变量(理解) 8 第二天... 10 1:关键字(掌握) 10 2:标识符(掌握)

javaSE之线程联合

首先定义 : 一个线程A在占有CPU资源期间 ,可以让其他线程调用join()和本线程联合. 嗯哈,像书本这个列子: 如: B.join(); 我们称A在运行期间联合了B, 如果线程A在占有CPU资源期间一旦联合B线程,那么A线程将立刻 中断执行,一直等到它联合的线程B执行完毕,A线程再重新排队等待CPU资源,以便恢复执行, 如果A准备联合的B线程已经结束,那么B.join(),不会产生任何效果. 1 package dialog_color; 2 3 public class Example1

JAVASE复习

top 暑假每天中午更新 六花酱赛高 目录: 内部类 枚举类 垃圾回收 修饰符 与运行环境交互 内部类: 1. 外部类可以通过非静态内部类对象访问内部类的private属性,内部类可以直接访问外部类的private属性,说明外部类和内部类都是在“一个类中”,这样才能相互访问到对方的private属性 2. 非静态内部类的实例化:new Outer().new Inner();//这个很好理解,Inner需要用outer对象来实例化,Inner的命名空间是Outer 3. 静态内部类的实例化: n

JavaSE基础笔记513

JavaSE笔记整理 java概述 1. 人机交互 人机交互:是指人与计算机之间使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程. 交互方式 图形化界面:这种方式简单直观,使用者易于接受,容易上手操作. 命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作.较为麻烦,需要记住一些命令. 2. 键盘功能键介绍 这些按键要求的不是认识:而是常用. ′ Tab *** 缩格 ′ 空格 Enter ****** ′ Window ′ Shift *** (C

JavaSE学习57:GUI编程之事件模型(二)

一实现两个数求和并且输出结果 利用所学的GUI编程实现上述的要求. TFMath.java源代码: <span style="font-size:18px;">import java.awt.*; import java.awt.event.*; public class TFMath { public static void main(String[] args) { new TFFrame().launchFrame(); } } class TFFrame exten

Java中的嵌套类和内部类

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

JavaSe基础知识总结

Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. -------------------------------------------------------------------------

JavaSE和JavaEE的起步学习路线

Java javaSE部分 1)能够掌握DOS系统常用基本命令:2)熟练使用eclipse编写java代码:3)掌握常用数据结构和算法:4)掌握常用的编程设计模式:5)熟练使用java语言的常用对象:6)使用java编写单机应用程序:7)掌握面向对象编程思想,为以后深入学习JavaEE就业课程打下坚实的基础. 1.1计算机基础知识 1.1.1计算机基础 先了解计算机,进而再去了解Java语言. 1.1.2 DOS常用命令 了解什么是DOS,并掌握DOS控制台的打开方式,同时熟悉常用的DOS命令,

JAVASE笔记回顾

第一部分,JAVA基础和面向对象 part01 入门与开发环境搭建 1: 计算机基础知识(了解)(1)计算机(2)计算机硬件(3)计算机软件系统软件:windows,linux,mac应用软件:QQ,YY,扫雷,CS/F(4)软件开发就是用开发工具和计算机语言做出软件(5)计算机语言人与计算机的交流方式(6)人机交互A:图像界面方便,简单,直观.B:DOS 窗口方式要有控制台, 要记住很多的命令, 麻烦.(7)键盘功能键和快捷键的介绍(掌握)A:键盘功能键tabshiftctrlalt空格ent