包(package):包的命名:package cn.itcatst.chinamobile--------cn.公司域名.项目名称.模块名称
java中包的声明要使用package,并且以分号结束,必须还需要放在源代码的第一行
在编译时自动创建包:javac -d . 类名.java (. 表示当前目录)
运行时需要这样:java 包名.类名 (类的全称是:包名.类名)
了解:java中常用的包
1、java.lang 包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能,该包不用人工导入
2、java.awt包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。
3、java.net 包含执行与网络相关的操作的类
4、java.io 包含能提供多种输入/输出功能的类
5、java.util 包含一些实用工具类,如定义系统特性、使用与日期日历相关的类
导包: import java.util.*; //导入java.util包中所有类 (如果要声明包的话--导包要放在package的下一行)
访问修饰符---public/默认的/protected/private abstract/final/static
用在类中的: public/默认的/abstract/final
用在成员方法中的 public/默认的/protected/private abstract/final/static
用在成员变量的 public/默认的/protected/private final/static
用在构造方法的 public/默认的/protected/private
总结:类前面加public,类中的属性都是private,方法都是public,父类一般用abstract,父类中功能性方法一般用abstract
内部类(Inner class)
内部类是一个独立的类,在编译后内部类会被编译成独立的.class文件,但是冠名前面要加上外部类的名称和$符号;
内部类分为:成员内部类,静态内部类,局部内部类,匿名内部类
成员内部类:在其他地方要访问内部类中的成员必须要建立内部类的对象
外部类 外部对象 = new 外部类(构造方法); 外部类.内部类 内部对象 = 外部对象.new 内部类(构造方法);
如果内部类是私有的,那么可以通过getter方法来实现对内部类对象的访问,这样不会破坏封装
静态内部类:在外部类中访问静态内部类的情况有两种:
第一种:在外部类中访问静态内部类中的非静态成员 外部类.内部类 内部类对象 = new 外部类.内部类(构造方法);
第二种:在外部类中访问静态内部类中的静态成员 可以通过上一种,也可以直接外部类名.内部类名.成员
不能从内部类的对象中访问非静态的外部类对象
局部内部类:位置:定义在方法中的类
局部内部类只能在定义该内部类的方法内实例化,不可以在此方法外对其实例化。
局部内部类的对象不能使用该内部类所在方法的非final局部变量-----解释存在的生命周期长短
匿名内部类:没有名字的内部类-------形式上分为:1、继承式的匿名内部类;2、接口式的匿名内部类
前提: 匿名内部类必须继承一个父类或实现一个接口,并且只能是一个;
语法: new 接口(){} 相当于实现这个接口,匿名实现
new 父类(){} 相当于继承这个父类,匿名继承 主要是为了实现匿名多态
匿名内部类使用原则:1、匿名内部类不能有构造方法;2、匿名内部类不能定义任何静态成员、方法。