伊莉討論區

標題: 剛學JAVA 建構方法 問題 [打印本頁]

作者: ˇ低格調ˇ    時間: 2015-10-10 09:00 AM     標題: 剛學JAVA 建構方法 問題

這是我學校的練習題  我卡關了 求解惑

題目是這樣


判斷兩矩形邊長與體積是否相同,

公式: L x W x H,

請建立Block建構子 : 初始化 矩形的長寬高

請建立2個方法 : sameBlock 和 sameVolume 回傳型態為 Boolean

sameBlock : 判斷兩個矩形的長寬高(矩形維度)是否相同,若相同回傳True反之回傳False

sameVolume : 判斷兩個矩形的面積是否相同,若相同回傳True反之回傳False


以下是我自己努力打出來的


class Block {  

  int a, b, c;  

  int volume;


  void Block(Block){

  L = this.a;

  W = this.b;

  H = this.c;

  volume = this.a * this.b;

  }  


  boolean smaeblock(){

  if(a=this.a && b=this.b && c=this.c){

  return true;

  }

  else{

  return false;

  }

  }


  boolean sameVolume(){

  if(a*b==this.a*this.b){

  return true;

  }

  else{

  return false;

  }

  }

}  


class main {  

  public static void main(String args[]) {

    Block ob1 = new Block(10, 2, 5);  

    Block ob2 = new Block(10, 2, 5);  

    Block ob3 = new Block(4, 5, 5);  


    System.out.println("ob1 same dimensions as ob2: " + ob1.sameBlock(ob2) );  

    System.out.println("ob1 same dimensions as ob3: " + ob1.sameBlock(ob3));  

    System.out.println("ob1 same volume as ob3: " + ob1.sameVolume(ob3));  

  }  

}


編譯之後他告訴我

void Block(Block){

這行錯誤

我完全不知道錯在哪裡


求解惑 謝謝





作者: canada6868    時間: 2015-10-10 07:06 PM

照你main()寫的...

void Block(Block){
L = this.a;
  W = this.b;
  H = this.c;
  volume = this.a * this.b;
  }

應該是...
void Block(int a, int b, int c){
  this.a = a;
  this.b = b;
  this.c = c;
  volume = this.a * this.b;
  }
作者: snowflying    時間: 2015-10-11 12:17 AM

constructor 不該加 void,倒是可加 public
照題目來看,應該是傳入長、寬、高
而不是 Block,況且 Block 還沒給變數名稱

boolean smaeblock
拼錯了,same 才對

作者: ˇ低格調ˇ    時間: 2015-10-11 08:48 AM

void Block(int a,int b,int c){
  a = this.a;
  b = this.b;
  c = this.c;
  volume = this.a * this.b;
  }
  
  boolean sameblock(){
  if(a==this.a && b==this.b && c==this.c){
  return true;
  }
  else{
  return false;
  }
  }
  
  boolean sameVolume(){
  if(a*b==this.a*this.b){
  return true;
  }
  else{
  return false;
  }
  }
}  

我依照各位的回答改了一番

可是編譯之後

還是錯誤


作者: ˇ低格調ˇ    時間: 2015-10-11 03:43 PM

public Block(int a,int b,int c){
  a = this.a;
  b = this.b;
  c = this.c;
  volume = this.a * this.b;
  }
  
  boolean sameblock(){
  if(a==this.a && b==this.b && c==this.c){
  return true;
  }
  else{
  return false;
  }
  }
  
  boolean sameVolume(){
  if(a*b==this.a*this.b){
  return true;
  }
  else{
  return false;
  }
  }
}  

改成這樣之後

變成

System.out.println("ob1 same dimensions as ob2: " + ob1.sameBlock(ob2) );  
    System.out.println("ob1 same dimensions as ob3: " + ob1.sameBlock(ob3));  
    System.out.println("ob1 same volume as ob3: " + ob1.sameVolume(ob3));

這三行cannot find symbol
作者: s1793159753    時間: 2016-1-11 05:28 PM

snowflying 發表於 2015-10-11 12:17 AM
constructor 不該加 void,倒是可加 public
照題目來看,應該是傳入長、寬、高
而不是 Block,況且 Block  ...

大大!
你真的專業專業超專業!!
我0基礎但是真的想學
我又笨!
請問大大第一本書
是哪一本呢
我想自學卻又不知道如何起頭!
作者: snowflying    時間: 2016-1-11 07:53 PM

s1793159753 發表於 2016-1-11 05:28 PM
大大!
你真的專業專業超專業!!
我0基礎但是真的想學

不專業呀
我也沒有聰明到哪裡去

其實大部分的書要拿來起頭學程式設計都可以
我主要是看電子檔
Java How to Program 9th Edition
再搭配  google 搜尋一些資料
官方也有教學
如果怕英文看不懂,看是要順便練一下英文
或者是看中文的書

作者: s1793159753    時間: 2016-1-12 02:23 PM

snowflying 發表於 2016-1-11 07:53 PM
不專業呀
我也沒有聰明到哪裡去

非常感謝大大的回覆
也提供給我資訊
非常感謝!!
作者: theloserbm    時間: 2016-1-14 10:54 AM

問題:
1. 體積不是a*b*c嗎?

2. 一個6*2*1的矩形和一個2*1*6的矩形是相等的嗎?




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!