Java内部类学习
1.内部类的实例与外部类的实例共享一种特殊的关系,这种特殊的关系为内部类中的代码提供对封装(外部)类成员的访问。其实,内部类就是外部类的一部分。不仅仅是“一部分”,而且是外部类的一个完整的,正式的成员。内部类实例可以访问外部类的所有成员,甚至是那些标识为private的成员。
1.1编写常规内部类
此处的常规表示:内部类不是静态的,局部方法的,匿名的。应是如下形式的:
class MyOuter {
class MyInner{ }
}
编译时会生成两个类文件:
javac MyOuter.java
生成:
MyOuter.class和MyInner.class
常规的内部类不能有任何类型的静态生命。能够访问内部类的唯一方法是通过外部类的一个活的实例。
看如下代码:
class MyOuter {
private int x=7;
class MyInner {
public void seeOuter(){
System.out.println("Outer x is "+x);//可以直接访问外部类的成员,即使是private的
}
}
}
实例化外部类
在外部类中实例化内部类
class MyOuter {
private int x=7;
public void makeInner(){
MyInnner in=new MyInner();
in.seeOuter();
}
class MyInner {
public void seeOuter() {
System.out.println("Outer x is "+x);
}
}
}
可见,MyOuter将MyInner当做其他任何可访问的类一样,它使用类名称【new MyInner()】来实例化。然后再引用变量上调用方法[in.seeOute()]。这种方法能起作用的唯一原因是:外部类实例方法代码正在进行实例化。换句话说,已经存在一个外部类的实例---运行makeInner()的实例。
从外部类实例代码之外创建外部类的对象
没有外部类的实例,就不能从外部类的静态方法实例化内部类(因为静态代码内不存在this引用)。内部类的实例总是拥有一个外部类的隐含引用。编译器负责处理这种隐含关系。
在外部类之外,创建内部类实例,可以这样做:
public s
相关文档:
1.计算某一月份的最大天数
Calendar time=Calendar.getInstance();
time.clear();
time.set(Calendar.YEAR,year);
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 ......
JAVA程序员面试之葵花宝典
1、面向对象的特征有哪些方面
1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模 ......
Java类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,有些时候可以认为是全局变量。因此在某些时候为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处:
Java代码 ......
一、背景
1、当我们第一次接触某段代码,但又被要求在极短的时间内有效地分析这段代码,我们需要什么样的注释信息?
2、怎么样避免我们的注释冗长而且凌乱不堪呢?
3、在多人协同开发、维护的今天,我们需要怎么样的注释来保证高质、高交的进行开发和维护工作呢?
二、意义
程序中的注释是程序设计者与程序阅读者 ......
本人之前做的项目中积累常用的时间方法,贴出来与大家共享,如果哪里有错误或更有效的方法请尽管拍砖!哈哈
Java代码
package com.hefeng.test;
import java.text.DateFormat;
import java.text.ParsePosition;
import&n ......