一、介绍

内部类:存在与类中的类就是内部类,一般用于Android开发。
 可以把内部类理解成一种继承关系
 1.普通内部类
 2.局部内部类
 3.静态内部类
 4.匿名内部类

二、笔记

1.普通内部类

/**
* 普通内部类:声明在类中,方法外的类
* 1.内部类可以直接访问外部类的属性和方法 包含私有的
* 2.外部类不能直接访问内部类的属性和方法,可以通过对象来访问,包含私有的
*
*
*/
public class NormalInnerClass { public static void main(String[] args) {
NormalInnerClass.Son fSon=new NormalInnerClass().new Son();
}
private String nameString; public void tell() { } //普通内部类 可以理解为是一个特殊的方法,可以创建对象
class Son {
private int age;
public void tell() {
System.err.println(nameString);
}
}
}

2.局部内部类

/**
* 局部内部类:声明在方法中的类,他的作用域只能在声明这个类的方法中
* 1.局部内部类,可以直接访问外部类的所有方法,包括私有
* 2.他的作用域只能在声明这个类的方法中,其他的方法不能访问,其他的类也不能访问
* 3.通过外部内部类来访问局部内部类
* 4.普通内部类不能有静态方法和静态变量
*
*/
public class LocalInnerClass { private String nameString="admin";
public void tell() { class son{
public void tell() { }
}
}
}

3.静态内部类

/**
* 静态内部类:
* 1.内部类只能直接访问外部类的静态属性和方法。
* 2.外部类只能通过类名直接访问内部类额静态属性和方法。成员属性和方法需要通过创建对象
* 3.可以有静态方法 静态变量 实例变量 实例方法
* 4.其他类可以通过类名直接调用静态属性和方法,通过创建对象访普通方法
*
*/
public class StaticInnerClass {
private static String name;
static class Son{
private String tr;
private static int age;
public void tell()
{
System.out.println(name);
} }
}

4.匿名内部类

/**
* 匿名内部类 通过调用
*
*
*/
public class AnonymityInnerClass {
public static void main(String[] args) {
Father father = new Father() {
@Override
public void menth() {
// TODO 自动生成的方法存根
super.menth();
}
};
}
} class Father { public Father() {
// TODO 自动生成的构造函数存根
} public void menth() {
System.out.println("1");
}
}

Java学习笔记之:Java 内部类的更多相关文章

  1. Java学习笔记之—Java基础

    将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信

  2. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

  3. java 学习笔记1 java语言概述及开发环境

    高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...

  4. Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  5. JAVA学习笔记之JAVA 对象引用以及赋值

      关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...

  6. 8.4(Java学习笔记)java脚本引擎(Rhino)

    一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...

  7. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

  8. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

  9. java学习笔记day06---匿名内部类

    1.匿名内部类:其实就是内部类的简化形式,它所体现的就是一个类或者接口的子类对象.前提:     内部类必须继承或实现外部类或接口. 格式:    new 父类&接口(){};    其实就是 ...

  10. Java 学习笔记(1)——java基础语法

    最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...

随机推荐

  1. 单行bash、shell、perl命令

    主题:单行经典bash.shell.perl命令 作者:luomg 摘要: 会陆陆续的写自己工作中的常用有意思的命令,争取你能看完后就能搞定常见操作, 且尽量自少提供基本shell.perl的实现方式 ...

  2. 霍夫变换(hough transform)

    x-y轴坐标:y=kx+b k-b轴坐标:b=-xk+y θ-r轴坐标:

  3. java中字符串String 转 int(转)

    java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...

  4. 【BZOJ 1033】 [ZJOI2008]杀蚂蚁antbuster

    Description 最近,佳佳迷上了一款好玩的小游戏:antbuster.游戏规则非常简单:在一张地图上,左上角是蚂蚁窝,右下角是蛋糕,蚂蚁会源源不断地从窝里爬出来,试图把蛋糕搬回蚂蚁窝.而你的任 ...

  5. 理解CSS居中

    我想很多在前端学习或者开发过程中,肯定会遇到如何让你的元素居中的问题,网上google肯定会有很多的解决方法.今天我就个人的项目与学习经验谈谈个人理解css如何让元素居中. 要理解css的居中,首先必 ...

  6. nodejs笔记二--文件I/O;

    一.写入文件: fs.writeFile(filename, data, callback),数据参数可以是string或者是Buffer,编码格式参数可选,默认为"utf8",回 ...

  7. win8.1 cygwin编译java轻量虚拟机avian

    1.背景 昨天在网上看到别人用aauto写本地小程序写的很爽,我觉得如果java的jre能小一点,凭借java庞大的第三方类库写小工具也还算不错的.本人就经常用eclipse+一些commons包写些 ...

  8. 15、android 用toast实现简单的进度显示

    if(mtoast!=null) { mtoast.setText(progress); } else { mtoast=Toast.makeText(getApplicationContext(), ...

  9. VC6.0打开或者添加工程文件崩溃的解决方法

    在Win7操作系统下使用Visual C++ 6.0编程时,如果点击菜单中的[打开]或者[添加],或者按快捷键,都会弹出下图的对话框,出现程序崩溃并退出的情况. 出现这种问题的原因是VC6.0和其他软 ...

  10. hdu 1075 What Are You Talking About

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 题意:比较简单,易懂,这里不做说明. 解法:第一种方法:用map映射,耗时1000+ms:第二种 ...