1、在子类中覆盖了父类的变量就不能在子类中直接使用父类中的变量了,但可以通过转型使用,如父类C中有变量i ,子类D也有变量i ,D d = new D(), (C)d .i来使用父类中被覆盖的变量,要是方法被覆盖了只能用super方法名(实参)来调用了,为什么不能像调用父类中的变量一样通过转型调用呢?为什么变量就可以?
2、对环境变量的理解:Javac相当于一个启动Java编译器命令,而Java相当于一个启动Java解释器的命令,而在安装完JDK后Javac.exe和Java.exe都在C:/Program Files/Java/jdk1.6.0_03/bin这个目录下,设置path= C:/Program Files/Java/jdk1.6.0_03/bin是为了让系统能找到Javac这命令启动编译器编译Java源文件生成class字节码文件(当然也要先到Java文件的目录下,要不然就找不到Java文件);Java是启动解释器加载执行class文件的命令,加载class文件时需要通过classpath找到class文件,所以可以设置classpath=.;(即为当前路径)。但我看书上设的classpath= .;C:/Program Files/Java/jdk1.6.0_03/lib 加上后面这段是起什么作用的呢?上面这些是我对环境变量的理解和问题,理解得不对的地方,请老师指导!
3、设置环境变量只对当前命令窗口有效,要是重新再启动一个命令窗口就无效了,但要是在设置环境变量的窗口键入start命令启动命令窗口则同样有效。
4、重载方法可以在一个类中如构造方法的重载,也可以在子类中;但方法的覆盖只能在子类中,否则就会报重复定义方法的错误。
5、Java文件有package语句,该类的名称应该是包名.类名,虽然编译生成的class文件在包名对应的相对路径下,只要将classpath设置为该相对路径所处的绝对路径即可,不要包含包的相对路径,因为Java解释器在解释执行时加载的是类,而类的全名称已包含包名。
6、如果一个Java类中使用别的类,假如A类中使用B类,在编译时有个先后顺序:先编译B,再编译A。如果B带包,则编译生成的class文件要放到包名对应的相对路径下,将该相对路径所处的绝对路径设为classpath的值,否则编译时会找不到B类;但如果用javac *.java把当前目录下的Java文件一次全部编译就不会出现找不到B类的问题了,这是为什么呢?