在static静态方法中能直接调用的方法只能是静态方法。要想调用其它非静态方法,需要借助对象。

类包:是Java提供的一种管理类文件的机制。可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞大的应用程序组件,方便软件复用。

  同一个包中类相互访问时,可以不指定包名。

  同一个包中的类不必存放在同一个位置,只要将CLASSPATH分别指向这两个位置即可。

  在文件中指定包名时需要将package关键字放置在程序的第一行非注释代码。

 导入包: import package's name *;   加上 * 表示可以在程序中使用导入包中的所有类

 导入静态成员: import static 静态成员;

内部类:

  1.成员内部类:

    在一个类中使用内部类,可以在内部类中直接使用外部类的成员方法和成员变量,(尽管被修饰为private)。

    内部类的实例要绑定在外部类的实例上,如果从外部类中初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上。

    内部类可以访问它的外部类成员,但内部类成员只有在内布类的范围内是可知的,不能被外部类使用。

    如果在外部类和非静态方法之外实例化内部类对象,需要使用外部类。内部类的形式指定该对象的类型。

  2.局部内部类:

    内部类可以在类的局部位置定义(如类的方法或任意的作用域中均可以定义内部类)

  3.静态内部类:在内部类前面添加修饰符static。

    一个静态内部类中可以声明static成员,但是在非静态内部类中不可以声明静态成员。

    普通的内部类对象隐式地在外部保存了一个引用,指向创建它的外部类对象,但吐过内部类被定义为static,就会有更多限制。

    静态内部类的特点:

      如果创建静态内部类的对象,不需要其外部类的对象。

      不能从静态内部类的对象中访问非静态外部类的对象。

    与非静态内部类不同,静态内部类的实例化不需要一个外部类的实例为基础,可以直接实例化,因为没有一个外部类的实例,所以在静态内部类里面不可以访问外部类的实例属性和方法,除了可以访问外部类的私有静态成员外,静态内部类和普通类没什么区别。

  4.匿名内部类:

    指在声明一个类的同时实例化它,使代码更加简洁精炼。

    通常,要使用一个接口或者抽象类,都必须创建一个子类,有时为了快速使用,直接实例化一个抽象类,并“当场”实现其抽象方法。

    内部类定义结束后,需要加分号标识,这个分号并不是代表定义内部类结束的标识,而是代表创建引用表达式的标识。

    匿名内部类编译后,会产生以“外部类名$序号”为名称的.class文件,序号以1~n排列,分别代表1~n个匿名内部类。

  

Day06(类包、内部类)的更多相关文章

  1. spring 笔记1: mvn 中Controller方法的参数不能是嵌套类(内部类)。

    最近做spring开发,个人认为,Controller和客户端js通讯时传递的参数类 只使用某几个方法,为了减少对其他功能的影响,想把参数类定义为Controller类的 嵌套类(内部类).但是实践发 ...

  2. JAVA 嵌套类和内部类

    一.什么是嵌套类及内部类?  可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:  静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类, ...

  3. 分析java 嵌套类与内部类

    一.什么是嵌套类及内部类?     可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用很少,最重要的是非静态嵌套类 ...

  4. Maven类包冲突终极解决方案

    本文转自:http://ian.wang/106.htm 举例A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过 ...

  5. tomcat中设置多项目共享jar;类包

    随着服务器上的tomcat部署的项目越来越多,最近在部署一个新的项目的时候出现内存溢出的错误 Exception in thread "main" java.lang.OutOfM ...

  6. eclipse引入jar类包的源代码

    为了方便查看源代码,有时候需要对jar类包,引入源代码. 下载源代码 源代码是zip或者rar的压缩包 引入到项目中

  7. 深入理解java嵌套类和内部类

    一.什么是嵌套类及内部类 能够在一个类的内部定义还有一个类.这样的类称为嵌套类(nested classes),它有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类使用非常少,最重要的是非静态嵌套类,也 ...

  8. Java中的嵌套类和内部类

    以前看<Java编程思想>的时候,看到过嵌套类跟内部类的区别,不过后来就把它们的概念给忘了吧.昨天在看<数据结构与算法分析(Java语言版)>的时候,又遇到了这个概念,当时就很 ...

  9. (十二)java嵌套类和内部类

    嵌套类和内部类:在一个类里边定义的类叫做嵌套类,其中没有static修饰的嵌套类是我们通常说的内部类,而被static修饰的嵌套类不常用.有的地方没有嵌套类和内部类的区分,直接是嵌套类就称作内部类,没 ...

随机推荐

  1. 高斯消元与行列式求值 part1

    两道模板题,思路与算法却是相当经典. 先说最开始做的行列式求值,题目大致为给一个10*10的行列式,求其值 具体思路(一开始看到题我的思路): 1.暴算,把每种可能组合试一遍,求逆序数,做相应加减运算 ...

  2. tar.gz,直接解压可用?还是需要编译安装?

    在linux搭建环境,下载的tar.gz安装包,有的直接解压就可以用,有的需要编译安装后才可用 怎么知道该怎么操作呢? 其实,tar -zxvf解压后,进入目录看README.md就知道答案了 另外, ...

  3. BZOJ2127Happiness

    题目描述 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文 ...

  4. 洛谷P3268 [JLOI2016]圆的异或并(扫描线)

    扫描线还不是很熟啊--不管是从想的方面还是代码实现的方面-- 关于这题,考虑一条平行于\(y\)轴的扫描线从左到右扫描每一个圆,因为只有相离和内含两种关系,只用在切线处扫描即可 我们设上半圆为1,下半 ...

  5. spring 中的设计模式

    https://mp.weixin.qq.com/s?__biz=MzU0MDEwMjgwNA==&mid=2247485205&idx=1&sn=63455d2313776d ...

  6. CF1155F Delivery Oligopoly

    题意:给定简单无向图,求一个最小的边集使得这些点是边双,输出方案.n <= 14 解:考虑一个边双肯定是一条一条的链拼起来的.于是每次枚举一条链加上去就行了. 设fs表示点集s形成边双的最小边数 ...

  7. python7 数据类型的相互转化 字符编码

    复习 1.深浅拷贝    ls = [1, 'a', [10]]    值拷贝:直接赋值 ls1 = ls, ls中的任何值发生改变,ls1中的值都会随之改变    浅拷贝:通过copy()方法 ls ...

  8. ES6-Babel-Browserify使用教程

    ES6-Babel-Browserify使用教程 定义package.json文件 { "name" : "es6-babel-browserify", &qu ...

  9. golang-flag的问题

    如果选择-flag x 就是不支持布尔型

  10. 一封来自恶魔的挑战邀请函,那些你见过或者没见过的C语言指针都在这里了

    前言 相信大多数的同学都是第一门能接触到语言是C/C++,其中的指针也是比较让人头疼的部分了,因为光是指针都能专门出一本叫<C和指针>的书籍,足见指针的强大.但如果不慎误用指针,这些指针很 ...