java2
命令行
javac -cp ?.jar classname.java
java -cp ?.jar classname
java cvf urname.jar *.class
java cvfm urname.jar ur.MF *.class
java -jar urname.jar
ur.MF的格式:
----------------
Manifest-Version: 1.0 [注意有空格]
Class-Path: .
Main-Class: HelloW [注意最后换行]
----------------
包
package pk1.pk2.pk3 解决名字空间、名字冲突
子类与其父类可位于不同包(存储路径)
同包各类默认可互相访问
import p1.p2.classname|*;使用*只表示本层次所有类,不含子层次
javac -d . d:\pk\*.java 编译的class放到当前目录
java -cp d:\dir1\dir2;. pk.Test
访问控制
同类 同包 不同包中的子类 不同包中的非子类
private Y
默认(包可访问) Y Y
protected Y Y Y
public Y Y Y Y
类的访问控制符:public 或 默认(同包访问)
private字段,setAAA和getAAA方法:隐藏属性,合法检验,不提供set保证只读
修饰符
static: 内部类,成员
final: 类,成员,局部变量
abstract:类,成员(方法)
static字段属于类(相当于全局变量)
static方法属于类,只能处理属于本类的字段和static方法
static方法不能访问实例变量,不能使用this,super
final类:不能被继承
final方法:不能被子类覆盖
final字段和final局部变量:一旦给定就不能改
staic final字段:表示常量 Interger.MAX_VALUE Math.PI
定义staic final字段,默认值为0,false,null
定义非static 的final字段:在定义时或构造函数中赋值
abstract类:不能被实例化;可有可无abstract方法
abstract方法:abstract int method(params);
接口interface(与class的地位平等,也是引用类型)
所有方法自动是public abstract的
Flyable f=new Bird();
[public]interface Name [extends interface1,interface2]{
returnTy method(params);//不提供实现
}//同样可以隐藏父接口定义的常量,重载父接口方法
接口中可包含常量,type NAME=value;常量被实现该接口的类共享
接口中常量具有public static final属性
java8,接口成员还可以是static方法和{}默认方法
枚举 (用class实现)
enum Color{Red,Yel,Gre}
Color c=Color.Yel;
浙公网安备 33010602011771号