中易网

JAVA初学问题

答案:6  悬赏:40  
解决时间 2021-01-19 05:24
JAVA初学问题
最佳答案
class Vol{
private float a;
private float b;
private float c;
private float r;
private float h;
private float d;
public void setA(float x){a=x;}
public void setB(float y){b=y;}
public void setC(float z){c=z;}
public void setD(float m){d=m;}
public void setR(float x){r=x;}
public void setH(float y){h=y;}
public float getA(){return a;}
public float getB(){return b;}
public float getC(){return c;}
public float getD(){return d;}
public float getR(){return r;}
public float getH(){return h;}
public double getArea(){
return Math.PI*r*r;
}
public float volume(float a){
return a*a*a;
}
public float volume(float b,float c,float d){
return b*c*d;
}
public double volume(float r,float h){
return Math.PI*r*r*h;
}
}

public class exp06 {

public static void main(String[] args) {
Vol v1=new Vol();
Vol v2=new Vol();
Vol v3=new Vol();
v1.setA(3);
v2.setB(3);
v2.setC(4);
v2.setD(5);
v3.setR(3);
v3.setH(5);
System.out.println("边长为"+v1.getA()+"的正方体体积为:"+v1.volume(3));
System.out.println("长、宽、高分别为"+v2.getB()+'、'+v2.getC()+'、'+v2.getD()+"的长方体体积为:"+v2.volume(3,4,5));
System.out.println("半径为"+v3.getR()+','+"高为"+v3.getH()+"的圆柱体体积为:"+v3.volume(3,5));
}

}
全部回答
先说一下面向过程和面向对象,这是两种思想,它们都能达到用程序来完成一件事情的能力。
只不过思维方式不一样而已。
面向过程是把一件事一项工程分解成为一个个小的功能,用一个个函数来实现.
面向对象是把事情看成是一个个小的对象组成的,或者说一个个小部分组成的,这些对象之间的相互关系,构成了整个项目.
在面向对象的思想中,万物皆对象,我是,你是,他也是。
而"类",就是对象的抽象或者说是概括。比如,我你他都可以概括为人类。
总的来说,类是抽象的虚的,而对象是一个个活生生的具体的事物。
人是一个类,我你他就是对象。
一般的面向对象程序设计方法都是先设计一个类,然后由这个类产生一个对象。
之后是对这个对象进行相关操作。
要说明一点:操作是对对象进行的,没有对象就无所谓操作。
下面说说如何设计一个类,
类是有一些属性和功能封装起来的。
在面向过程的思想里,一个程序一般都是由一个个函数组成的,这些函数之间相互调用,
就形成了一个完整的程序,解决了一个问题。它的基本结构是:
函数一()
{
……;
}
函数二()
{
……;
}
……
主函数()
{
……;
}
但是在面向对象的思想中,是把这些都封装起来,形成一个类。
class 类名
{
函数一()
{
……;
}
函数二()
{
……;
}
……
}
然后由这个类产生一个对象,比如:我们把一个类的类名起为student
那么产生对象的方法就是:student s1;
这里s1是一个对象,产生了这个对象以后,才可以进行相关操作。
操作方法如:s1.函数一();
等等。具体的细节在此就不说了,此文只说思想。
说得再明白一点就是,把具体的实现过程放在类里面,之后产生一个对象,有对象调用相关操作。
犹如把面向过程里的函数都封装进了类里,然后再由对象来操作。
一个类主要就是封装,一般把它当成一个模块,在需要的时候可以让其他类调用。
类是一个抽象,一个概括,把一些有共同特征的东西抽象化,提出它们的公共部分,封装在一起。
关于封装,上文已经说过,就是把一些属性和功能装在一个容器里面。
下面我用一个游戏来解说一下:
假设我们要做一个小游戏,类似于网游里面的打怪,为简单起见,认为怪不打人,只让人打,
他的血不断减少,直到死亡。
把所有怪物的共同特征抽象出来,于是我们得到一个类:怪物
class 怪物
{
char 怪物名;
int 血;
怪物(怪物名n,血n)
{
怪物名=怪物名n;
血=血n;
}
被打函数()
{
血减少;
}
判断函数()
{
if (血==0)
printf("你胜利了!");
}
玩游戏()
{
while (血 > 0)
{
被打函数();
判断函数();
}
}
}
这样,就定义了一个怪物类,他有属性:怪物名、血,有功能:构造、被打、判断
根据这个,就可以产生对象了。
一个类可以产生任意多的对象,这些对象根据构造函数的不同来区别。
我们先继续来写我们的程序
main主函数
void main()
{

怪物 怪物1("狼",5000);
怪物 怪物2("虎",8000);
怪物 怪物3("蛇",3000);

怪物1.玩游戏();
怪物2.玩游戏();
怪物3.玩游戏();
}
再这个主函数中,我们建立了三个对象,它们共用一个类。
可以看到,类相当于一个组件,一个模块,我们在需要的时候只要建立它的对象,就能实现他所封装的功
能。
这就是面向对象的优点,可以重用,不必每一次用到时都重写。
说了这么多,自己感觉还是没说明白,真有点只可意味不可言传的感觉。
其实要是书看的多了,真正认真地写上几个东西,就能够理解了,无形之中就会有感觉的。
靠,给的答案你们自己运行过吗。
public class TestOther {
public static void main(String[] args) {
Vol v1 = new Vol();
Vol v2 = new Vol();
Vol v3 = new Vol();
System.out.println(v1.volume(3));
System.out.println(v2.volume(3, 4, 5));
System.out.println(v3.volume(3, 5));
}
}
class Vol{
private final double PI=3.1415926;//定义PI常量
//求正方体体积
public double volume(int x){
return x*x*x;
}
//求长方体体积
public double volume(int x,int y,int z){
return x*y*z;
}
//求圆体积
public double volume(int r,int h){
return PI*r*r*h;
}
}
public class Vol {
private double x;
private double y;
private double r;
private double h;
public Vol(double x, double y, double r, double h) {
this.x = x;
this.y = y;
this.r = r;
this.h = h;
}
public Vol() {
}
public double zhengFangTiVol(double x) {
return x * x * x;
}
public double changFangTiVol(double x, double y, double h) {
return x * y * h;
}
public double YuanZhuTiVol(double r, double h) {
return Math.PI * r * r * h;
}
public static void main(String[] args) {
Vol v1 = new Vol();
Vol v2 = new Vol();
Vol v3 = new Vol();
System.out.println(v1.zhengFangTiVol(3));
System.out.println(v2.changFangTiVol(3, 4, 5));
System.out.println(v3.YuanZhuTiVol(3, 5));
}
}
27.0
60.0
141.3716694115407
public class Vol {
//求边长为l的正方形的体积
public float volume(float l){
return l*l*l;
}
//求长为l,宽为w,高位h的长方形的体积
publicfloat volume(float l,float w,float h){
return l*w*h;
}
//求半径为r,高位h的圆柱形的体积
public float volume(float r,float h){
return (float) (r*r*Math.PI*h);
}
}
public class exp06 {
public static void main(String[] args) {
Vol v=new Vol();
//输出正方形体积
System.out.println(v.volume(3));
//输出长方形体积
System.out.println(v.volume(3,4,5));
//输出圆柱体体积
System.out.println(v.volume(3,5));
//此处是利用了java的多态来求体积,最后输出内容的格式由你自己去修改
}
}
追问:不是输出的时候要显示“边长为3的正方体体积为”
要怎么通过对象把这个"3"显示出来呢
题目给出的这段
public static void main(String[] args) {
Vol v1=new Vol();
Vol v2=new Vol();
Vol v3=new Vol();
要怎么把属性数据(边长啦半径啦什么的)加到对象里呢。
我是初学者概念不清 所以表述可能也不清楚
追答:package com.test;
public class Vol {
//输出正方体的体积
public void volume(float l){
System.out.println("边长为"+l+"的正方体体积为:"+l*l*l);
}
//输出长方体的体积
publicvoid volume(float l,float w,float h){
System.out.println("长、宽、高分别为"+l+"、"+w+"、"+h+"的长方体体积为:"+l*w*h);
}
//输出圆柱形的体积
public void volume(float r,float h){
System.out.println("半径为"+r+",高为"+h+"的圆柱体体积为:"+Math.PI*r*r*h);
}
}
public class exp06{
public static void main(String[] args) {
Vol v1=new Vol();
Vol v2=new Vol();
Vol v3=new Vol();
//输出正方体体积
v1.volume(3);
//输出长方体体积
v2.volume(3,4,5);
//输出圆柱体体积
v3.volume(3, 5);
}
}
已按你的要求修改代码,至于你说的给对象的属性赋值,请参考楼下 风婷秋 的代码。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
无线的不同信道的传输速度一样吗。比如1,6,
战神1+2的VPK文件怎么复制到PSV里面
泰拉瑞亚霜月(南瓜月)怎么刷到二十波,如果
申请美国研究生时study plan怎么写
我愿意改变,从新再来一遍,那是什么歌?
(女人是什么 ,谁能告诉我 )是哪首歌曲里的
求雷顿教授与不可思议的小镇 完美通关存档
买来固件就是5.6的kindle如何越狱
为之回首的“为”读几声
求杨凌的娇妻美妾txt版本
吕梁星辰旅馆怎么去啊,有事要去办理
模仿《妈妈的爱》————1段
相伴三生只因是你
关于孝顺的四字词语
(●—●)这道题到底怎么做,在学校问了老师老
推荐资讯
CSOL中的QBB95.M249.MG3.M134哪一个好用,介
我国大陆性气候显著的原因
菊花将残渐凋零,芙蓉各蕊叶更青.闰九月生二
北宋汴京城哪个部门掌管刑事案件
沉住气,熬过6.76.8就是69什么意思
中国有多少人叫尤玉龙?
六年级二班的班歌歌词
王思聪为什么买下T-ara组合?
节食三个月一般会瘦多少
ps4 neo要出了吗 ? 现在买ps4划算吗
诸位觉得王者天下怎么样
丰田零件代码辅助号码A0B0C0J0都表示什么颜色
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?