import java.util.Scanner;importstatic java.lang.Math.PI;publicclassTest01{publicstaticvoidmain(String[] args){// () 方法 方法名// System.out 对象 // System 是个类// out 是个静态的对象
System.out.println("hello world");
Scanner input =newScanner(System.in);// 创建一个时间对象
Date d =newDate();//创建一个时间对象 sql
java.sql.Date sqlD =newjava.sql.Date(123456L);
System.out.println(PI);//System.out.println(abs(-1234));}}
内部类
定义在类里面的类称之为内部类,生成的字节码文件的文件名称 内部类-> 外部类$内部类
普通内部类
a:外部类中如何使用内部类的属性以及方法
在外部类中创建内部类对象 调用内部类功能、属性
b:内部类中使用外部类的属性以及方法
可以直接使用
c:其它类中调用内部类中的属性和方法:
导包 包名.外部类.内部类
内部类类型 变量名= new 外部类对象().new 内部类对象
Inner01 in = new Outer01().new Inner01();
外部类.内部类 变量名= new 外部类对象().new 内部类对象
Outer01.Inner01 in = new Outer01().new Inner01();
publicclassTest01{publicstaticvoidmain(String[] args){//创建外部类对象
Outer01 out =newOuter01();
out.method();// 创建inner对象
Outer01.Inner01 in =newOuter01().newInner01();int num =newOuter01().num;}}classOuter01{int num;publicOuter01(){}publicvoidmethod(){// 使用内部类中的属性
Inner01 in =newInner01();
in.fun();
System.out.println("outer method");}/* private */classInner01{publicInner01(){}publicvoidfun(){/*
* Outer01 out = new Outer01(); out.method();
*/method();
System.out.println("Inner fun");}}classInner02{publicInner02(){}publicvoidfun1(){//fun();
System.out.println("Inner fun");}}}
静态内部类
通过static修饰的内部类称之为静态内部类。
外部类中如何使用静态内部类的属性以及方法:
创建对象,调用对象的属性以及方法
静态内部类中使用外部类的属性以及方法:
创建外部类的对象 调用对象的属性以及方法
其它类中调用内部类中的属性和方法:
导包 包名.外部类.内部类
内部类类型 变量名= new 外部类. 内部类对象()
Inner01 in = new Outer02.Inner01();
外部类.内部类 变量名= new 外部类. 内部类对象()
Outer01.Inner01 in =new Outer02.Inner01();
publicclassSingle{staticclassSingleHolder{privatestatic Single single =newSingle();}privateSingle(){}publicstatic Single getInstance(){return SingleHolder.single;}publicstaticvoidadd(){}publicstaticvoidmain(String[] args){/*
* Single s1 = getInstance(); Single s2 = getInstance(); System.out.println(s1);
* System.out.println(s2);
*/
Single.add();
Single s1 =getInstance();}}