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;

posted @ 2015-09-09 17:40  jack-xu  阅读(139)  评论(0)    收藏  举报