内部类

原创 2016年08月30日 17:32:01
 内部类:在类中定义的类,成为内部类.一个类的存在依赖于另一个类,如果这个类独立存在没有存在的价值,所以可以把他设计成为内部类。
内部类可以直接访问外部类的私有成员和方法
2 顶层类修饰符可以是public和默认的修饰符
内部类可以是任意修饰符
内部类也可以是顶层类的一个成员变量
3 内部类的分类:静态成员类  实例成员内部类(成员类) 方法类  匿名类
4 内部类可以访问外围类的私有属性(不用建立对象)
 外围类可以访问内部类的属性,但是必须建立对象。否则无法访问
5 静态内部类不可以访问外部类的实例变量,可以访问外部类的静态变量。静态内部类和外围类的对象没有关系。与顶层类没有多大的差别,只不过是
6 实例成员内部类,简称成员类。成员类必须依赖于外围类的对象。
7方法类:定义在方法中的类称为方法类,也成为局部类,类似于方法类的变量。
方法类不能够使用static修饰和修饰符修饰方法中的类创建的对象是在堆内存中,当方法运行结束,仍然存在。
而方法中的普通变量是在栈内存中,当方法运行结束后,该变量会自动垃圾回收
方法类的用处实现一个接口,返回方法类的实例对象。封装。
8方法类不能够使用static修饰?
static会在整个类的生命周期存在,但是局部变量的作用域只是位于方法体,两者冲突。
9局部变量为什么没有访问修饰符?
局部变量没有访问修饰符,因为他的生命周期就在这个方法中。其他的方法不能够使用这些局部变量,加不加修饰符没有意义。只要能够访问这个方法,就能够访问这个方法。
10 JDK1.8之后,内部类可以访问方法的非final属性,但是不能更改,相当于final。在JDK1.8之前,不能访问非final属性,只能是final属性。为什么?
 java中每个方法相当于一个线程。当有内部类的时候,内部类使用方法中的变量必须是成员变量。多个线程(内部类中的方法和内部外的方法两个线程)对同一个变量修改,会造称错乱
11 匿名内部类
没有名称,方法类的类体较少的时候可以使用那个内部类,如果方法类的类体较长,不建议使用匿名类。匿名类最后必须加分号。
12 java内部类好处
第一个好处:隐藏你不想让别人知道的操作,也即封装性。
第二个好处 :一个内部类对象可以访问创建它的外部类对象的内容,甚至包括私有变量

 

JAVA和C++内部类

JAVA和C++内部类的异同
  • qq78442761
  • qq78442761
  • 2016年11月21日 22:52
  • 470

Java 创建内部类实例

编程中需要访问内部类,写C习惯了Java方式多少有些生硬。 其实很简单: 1 拥有内部类的一个类 public class B{ public void showData() { ...
  • xiaoleiacm
  • xiaoleiacm
  • 2016年03月01日 15:28
  • 2786

内部类的单例模式

* 上面的单例实现存在小小的缺陷,那么 有没有一种方法,既能够实现延迟加载,又能够  * 实现线程安全呢?  *       还真有高人想到这样的解决方案了,这个解决方案被称为Lazy initial...
  • ygl6150373
  • ygl6150373
  • 2016年11月20日 16:39
  • 860

java内部类常见面试题汇总

1.根据注释填写(1),(2),(3)处的代码 public class Test{ public static void main(String[] args){ /...
  • tomcat_2014
  • tomcat_2014
  • 2016年04月18日 17:13
  • 2805

python内部类

#!/usr/bin/python class outerclass: msg = "I am outer class" class interclass: m...
  • u013551220
  • u013551220
  • 2014年02月13日 10:30
  • 1432

java内部类的四大作用

放在一个类的内部的类我们就叫内部类。 二、 作用 1.内部类可以很好的实现隐藏  一般的非内部类,是不允许有 private 与protected权限的,但内部类可以 2.内部类拥有外围类的所...
  • mid120
  • mid120
  • 2016年12月14日 19:25
  • 3445

Javascript内部类

Javascript内部类 基本概念     JS中本身提供了一些可以直接使用的类,这些类就是内部类。 主要有: Array,Boolean,Date,Math,Number,St...
  • q547550831
  • q547550831
  • 2015年12月24日 15:53
  • 2010

JackSon和内部类,是的,你可以使用,但他们必须是静态的内部类

本文翻译于一片国外文章,原文链接如下:Tatu Saloranta JackSon和内部类,是的,你可以使用,但他们必须是静态的内部类。 这是我直到今天没有意识到的东西:这显然是正确使...
  • yang292292
  • yang292292
  • 2016年09月05日 14:57
  • 1554

创建内部类的实例方法

方法1:在外部类类初始化内部类实例 class Start { public static void main(String [] args) { MyOuter outer=new My...
  • leafinsnowfield
  • leafinsnowfield
  • 2015年08月09日 10:42
  • 2108

FastJson解析处理内部类问题

1.com.alibaba.fastjson.JSONException: create instance error 2.报错default constructor not found. class...
  • b465243177
  • b465243177
  • 2017年07月13日 16:19
  • 858
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:内部类
举报原因:
原因补充:

(最多只允许输入30个字)