abstract class Tuxing{
public abstract double qiumianji();
}class Tixing extends Tuxing{
double a,b,h;
Tixing(double a,double b,double h){
this.a=a;
this.b=b;
this.h=h;
}
public double qiumianji(){
return ((1/2.0)*(a+b)*h);
}
}class Yuanxing extends Tuxing{
double r;
Yuanxing(double r){
this.r=r;
}
public double qiumianji(){
return (3.14*r*r);
}
}class Dui{
Tuxing di;
double gao;
Dui(Tuxing di,double gao){
this.di=di;
this.gao=gao;
}
void huandi(Tuxing di){
this.di=di;
}
public double qiutiji(){
return (di.qiumianji()*gao)/3.0;
}
}public class Sample4_23{
public static void main(String args[]){
Dui zui;
Tuxing tuxing;
tuxing=new Tixing(2.0,7.0,10.7);
System.out.println("梯形的面积"+tuxing.qiumianji());
zui=new Dui(tuxing,30);
System.out.println("梯形底的堆的体积"+zui.qiutiji());
tuxing=new Yuanxing(10);
System.out.println("半径是10的圆的面积"+tuxing.qiumianji());
zui.huandi(tuxing);
System.out.println("圆形底的堆的体积"+zui.qiutiji());
}
}这是JAVA书中的例题,错当然是没错的,不过有的地方我看不大懂了~~
1.java中A a(A是类,下同),这样算是创建对象吗?还是这样只是声明,创建对象都必须用new运算符创建?
2.c++中的A a是否创建了a对象呢,那用new运算符是否也是创建对象呢?两种创建对象的方法又有什么不同之处啊?
谁能给我列表一下,或具体说明一下JAVA中的和C++中的抽象类的一些知识要点吗?谢谢了。
public abstract double qiumianji();
}class Tixing extends Tuxing{
double a,b,h;
Tixing(double a,double b,double h){
this.a=a;
this.b=b;
this.h=h;
}
public double qiumianji(){
return ((1/2.0)*(a+b)*h);
}
}class Yuanxing extends Tuxing{
double r;
Yuanxing(double r){
this.r=r;
}
public double qiumianji(){
return (3.14*r*r);
}
}class Dui{
Tuxing di;
double gao;
Dui(Tuxing di,double gao){
this.di=di;
this.gao=gao;
}
void huandi(Tuxing di){
this.di=di;
}
public double qiutiji(){
return (di.qiumianji()*gao)/3.0;
}
}public class Sample4_23{
public static void main(String args[]){
Dui zui;
Tuxing tuxing;
tuxing=new Tixing(2.0,7.0,10.7);
System.out.println("梯形的面积"+tuxing.qiumianji());
zui=new Dui(tuxing,30);
System.out.println("梯形底的堆的体积"+zui.qiutiji());
tuxing=new Yuanxing(10);
System.out.println("半径是10的圆的面积"+tuxing.qiumianji());
zui.huandi(tuxing);
System.out.println("圆形底的堆的体积"+zui.qiutiji());
}
}这是JAVA书中的例题,错当然是没错的,不过有的地方我看不大懂了~~
1.java中A a(A是类,下同),这样算是创建对象吗?还是这样只是声明,创建对象都必须用new运算符创建?
2.c++中的A a是否创建了a对象呢,那用new运算符是否也是创建对象呢?两种创建对象的方法又有什么不同之处啊?
谁能给我列表一下,或具体说明一下JAVA中的和C++中的抽象类的一些知识要点吗?谢谢了。
解决方案 »
- 用java下载文件,有没有成熟的好用的库或者opensource的东西,谢谢
- 控制线程打印问题
- java 中 ++ 操作是原子的吗
- 求一方法 工作日期早于当前日历日期1天且不超过两天,或者工作日期和当前日历日期是同一天 在线等。。。
- java.util.date 和 java.sql.date 两者之间有什么不同?各自用在那些场合比较合适!
- SQL Exception occur.Message is:对象名 'C' 无效。Connection Successful! SQL Exception
- UML(Unified Modeling Language)是什么语言?它与面向对象语言有什么联系吗?
- 高分请教JBuilder6方面的问题
- skyyoung(路人甲):
- 请教scjp中的问题
- 在表格中如何删除列?
- 内存溢出问题(outOfMemortError)
Tuxing tuxing
这些是只是声明吗?
你的理解是对的
2. 对C不熟悉,抱歉,不过我觉得和Java八九不离十
关于抽象类,比较精简的解释是:包含一种或多种抽象方法的类,不需要构造实例。定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。
抽象类与接口的重大区别就在于它能提供一部分实现,包括方法和属性。接口是不可能有属性定义的。
明天帮你想
今儿先在此拉泡shi,先 --
没有创建对象,只声明了A的引用。创建对象都必须用new运算符创建。
2.c++中的A a是否创建了a对象呢,那用new运算符是否也是创建对象呢?两种创建对象的方法又有什么不同之处啊?
A a; 创建了一个对象in C++; 它调用的无参数的构造函数(如果有含参构造但没有无参的,会抱错)。不同?你说呢?
基本类型如,int,byte,等.所有的class,还有数组都是引用类型.
引用类型必须要new才能产生新对象.所以在java中
byte a; 声明并建立了一个对象
myclass a;仅仅是声明了一个对象的引用q,还没有具体的引用对象;//////////////////////////////////////////////////////
C++中数据类型没有引用和非引用的区别.所以在c++中
int a;声明并建立了一个对象
myclass a;声明并建立了一个对象;c++用也有引用一说但和java中的引用不是一个概念, c++中的引用中是一个别名.
如下
int a;
int& b = a;
那么b就是a的一个别名.
http://blog.csdn.net/brooksychen/archive/2007/04/02/1549594.aspx《Java与模式》学习笔记(3)——Factory Method
http://blog.csdn.net/brooksychen/archive/2007/04/03/1550388.aspx《Java与模式》学习笔记(4)——Abstract Factory
http://blog.csdn.net/brooksychen/archive/2007/04/04/1552143.aspx
在原理上java和c++是相同的,就是一个类中有没实现的方法,凡扩展些抽象类的类必须实现
这些方法。
抽象类是在接口的基础上来的。一个接口告诉你这个类都有哪些方法,而抽象类是实现了
其中的一部分方法,目的是提供更好的重用性,直接从抽象类开始,就不用实现接口的所有方法了。
2.再说说java中引用
上面已经有人说的很清楚了。java的变量有两种类型(从引用创建方法来说),基本类型和一般的类。基本类型就是byte,char,int,long,float,double这些数字类型,这些类型都是声明时就分配在内存中分配存储空间的,变量实际就是数据在内存中的地址。比如int a;这实际上是在内存中分配了一个32位的空间,并默认初始值为0;
一般的类是声明的时候,创建一个引用,并未创建对象的实例,这个引用实际是一个32位的数(好象也不太准确,就是32位的内存空间吧),比如A a; a只是一个A类开实例的引用,默认值为null.当A a = new A();时,才把A类的一个实例和a联系起来,有点指针的意思。
而在c++中,是声明即创建,所谓的创建,就是在内存中给对象分配了空间。.........................................
还有,建议楼主不要这么对比着学,容易两样都学不好。不如先把一种搞明白了,一类比再学其它的就快了,就好比运动里的参照物一样。你这样好像是再搞相对论。