classpath与内部类

来源:百度文库 编辑:神马文学网 时间:2024/04/27 19:11:47
1:JAVA是通过JVM的不跨平台性实现字节码的跨平台。
2:Window其实为自己的每个应用程序都设置了环境变量
PATH=C:\Program Files\Java\jdk1.5.0\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOW
S\System32\Wbem;D:\PROGRA~1\ULTRAE~1;C:\Program Files\Microsoft SQL Server\80\To
ols\BINN;C:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Micro
soft Visual Studio\Common\Tools\WinNT;C:\Program Files\Microsoft Visual Studio\C
ommon\MSDev98\Bin;C:\Program Files\Microsoft Visual Studio\Common\Tools;C:\Progr
am Files\Microsoft Visual Studio\VC98\bin
按路径找到第一个就停止不用找第二个了。
3:jdk提供的应用程序如javac,java等能否执行决定于系统能否根据path找到这个应用程序;
而在java Demo这个命令中,系统要做的是根据classpath来找到Demo.class这个类。所以你不一般不需要设置classpath,因为默认的classpath是当前根目录,除非你执行了set classpath 就出问题了。
classpath可以在命令行下指定,但是重新打开时就恢复为无定义的classpath(如果在环境变量下设置了,则为设置的那个目录),但是只要在环境变量下设置一个classpath的路径,那就ok了,我的意思是如果你的类Demo.class都放在classpath的路径下,那么无论你在那里你都可以随便执行java Demo而不用像以前那样非得跑到Demo.class所在目录下取执行。但是如果你在命令行中再次set classpath,那么设置的环境变量的classpath将会在这次执行中被替换。重新打开窗口又恢复你的环境变量下的classpath
函数参数类型完全一致的方法不能构成方法重载
final定义常量,如同define, 在运行的过程中不可以改变它的值,而且必须在申明的时候初始化,但实际上也可以在构造函数中初始化
java中只能用单继承,c++中用多继承
super可用来调用被子类覆盖的父类方法和成员变量
实类话一个子类对象时,默认先调用父类的构造方法
.java不需要放在包里
而.class文件一定要放在它的定义包里
包是为.class应用而生的,根本不管.java文件
执行.class的时候必须在包的上层目录里,而不能在包里
编译.java的时候之要能找到文件就行了
javac -d自动生成包的目录结构,所以说对高手来说根本不用手动为包建立相应的目录,只要用java -d . 就行了
-d后面跟的是目录,用.的时候指当前目录
import在包与包之间起作用,一个包里的类可以直接互相用
最好不要用*来导入包,这在网络环境和手持设备环境下,是很可观的
可以用*.java一次将所有当前目录下的.java文件编译
final最终类,不可再被继承,String 就是著名的final类
方法抽象的话类一定要抽象,类抽象的话不一定要方法抽象
将一个没有任何抽象方法的类声明为abstract,避免由这个类产生的任何的对象。
interface里的方法都是缺省public abstract,实现接口或者继承并且实现抽象类的方法必须将接口的所有方法或者抽象类的所有抽象方法都实现,可以空实现,但时不能不实现
对一个文件种放置的很多类的情况下:
文件名不一定要与含有main的类一致,也就是说文件名可以是任何一个类的名字
但是在解释执行的时候一定要用含有main的类名
但是如果含有main 的类是public的,那么....
一个好的忠告是:给每一个文件一个包,因为一个文件里有很多个类;
一个类被实例化以后,默认的都有一个this引用来指向对象
无法在main中直接实例化一个内部类,只能是用main来调用一个方法来实例化一个内部类!因为内部类的存在一定是在有外部类的实例后,如果在main中实例化一个内部类,次时并没有外部类。正确的方法时先实例化一个外部类,然后用这个实例调用一个方法来构造内部类对象!也可以是直接用外部类的对象.new  来构造内部类,如Parcel11.Contents c = p.new Contents();无论如何必须利用外部类的一个对象生成内部类的一个对象:
普通(非内部)类不可设为private或protected——只允许public或者“友好的”。所以用内部类可以更好的隐藏实施细节
当实例化一个外部类的时候并没有同时产生内部类的对象
同时又不能在外部类的main中直接实例化一个内部类,所以一般的做法时写一个外部类的方法,这个方法实例化了内部类,然后在main 中实例化外部类的对象,然后用这个对象调用它的方法来构造内部类
在内部类的外部类之外的其他类中访问内部类的正确方法是:
外部类.内部类
除非已拥有外部类的一个对象,否则不可能创建内部类的一个对象
内部类和普通变量一样,一旦超出了它的作用范围就看不见了,比如把它定义在一个方法里或者定义在一块语句中时就要考虑这个可能;
无论内部类嵌套的层次有多深,它都可以访问外部类的成员变量;
C++可以多重继承,java只能单继承,用内部类可以达到多继承的效果