关于JAVA的二个问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:46:25
大家好,本人在自学JAVA,希望大家指点下

有三个问题,第一个:关于paint(Graphics g),Graphics不是抽象类吗?

可不是说抽象类只能被继承,不能定义对像吗?那为什么在这里可以定义一个

对像呢?

第二个:比如Class A{}
Class B extends A{}
A exm = new B;为什么这样定义?这样定义出来的类是算A还是算B呢?
还有Runnable exm = new Progress();
Progress是一个类,可Runnable是一个接口,这样定义是什么意思呢?

第三个:AWT包和SWING包,我看除了类前多了一个J,方法基本上都是一样的,是不是AWT是老包过时了不用的?现在只用SWING?
而且用它们做出来的界面我觉得不怎么好看,它们主要应用在哪里?
有编译器可以自动生成JAVA界面代码的吗?介绍下。

初学者,请大家详细解答下,谢谢了。

paint(Graphics g)

g必须是继承了Graphics的类的实例,而不是Graphics的对象,这就规定了传进来的参数!

A exm = new B;

Runnable exm = new Progress();
的作用是相同的!

比如你想把你自己写好的类提供给别人用,但是你又不想别人知道你类里边
具体的实现(这个类怎么写的),那么就可以写个接口提供给别人,你知道接
口里边只有方法名.那样人家只需要实现你的接口而不需要知道你具体的写法
就可以用上你提供的类了,当然你那个类也得实现你提供的那个接口!而且任何人只要实现了你提供的接口,也就都能使用你的类了!这样人家在使用你提供的那个类的时候在一定程度上得到了统一!

这些个道理说半天也不知道你明不明白,到你真做过几次项目你就知道它的好了!
尤其是Runnable exm = new Progress(); 接口好用!

AWT包和SWING最大滴区别就是一个重量一个轻量级
轻量级组件是用JAVA代码画出来的,这样具有平台移植性
而重量级组件是调用操作系统的函数画出来的组件,比如主窗体
一般来说尽量用轻量级的组件,这样对程序的移植性很好
一般javax.swing包里的组件大部分是轻量级的
java.awt里面的是重量级的

一般IDE都能自动生成大部分JAVA代码
我建议你用eclipse内存耗的小,开源的,又可装插件,而且不要钱
如果你有钱又想更省事那就用netbeans,只要你花得起,它还是不在话下滴!

第一个问题:Graphics 是抽象类,但是他可以有子类啊,只要他的子类不是抽象的,生成一个对象放在这里也是没有任何问题的。
就比如说人是一个抽象类。男人继承了人。男人不是抽象类,那么你这样生成一个对象是没有问题的 人 张三 =new 男人();
第二个问题:A exm = new B;你问他到底是A还是B。其实还是和第一个问题是一样的。他既是a也是b。就像你既是男人也是人一样。
前两个问