DOBON.NET DOBON.NETプログラミング掲示板過去ログ

初歩的な質問ですみません・・・

分類:[その他]

JAVAで,哺乳類をスーパークラス,人間,猫,イルカをサブクラスとして,各々に考え得る属性(フィールド)と行動(メソッド)を定義し,属性・行動を表示し確認するメインメソッドを作成してみたのですが,以下のソースにおいて,コンパイルできません.しかし,JAVA初心者のため,何をどうすればいいか分かりません.どなたか教えてくださいませんか??

class Mammal{
int pulmonarybreath; //肺呼吸
int viviparity; //胎生
}
Mammal(){
setAction(1,1);//まだ考えていないので適当な値を設定
}
Mammal(int pulmonarybreath,int viviparity){
setAction(pulmonarybreath,viviparity);
}
void setAction(int pulmonarybreath,int viviparity){
this.pulmonarybreath = pulmonarybreath;
this.viviparity = viviparity;
}
class Humans extends Mammal{
String legNumber; //フィールド
Humans(){
setLegNumber("2本");
}
Humans(int pulmonarybreath,int viviparity,String legNumber){
setAction(pulmonarybreath,viviparity);
setLegNumber(legNumber);
}
void setLegNumber(String legNumber){
this.legNumber = legNumber;
}
//同様に,猫も上記のように記す.足の数は2本に設定.文字数が多くなるため省略
class Dolphin extends Mammal{
String length; //体長
Dolphin(){
setLength("1〜5m");
}
Dolphin(int pulmonarybreath,int viviparity,String length){
setAction(pulmonarybreath,viviparity);
setLength(length);
}
void setLength(String length){
this.length = length;
}
public class MammalTest{
public static void main(String args[]){
Humans h = new Humans();
Cats c = new Cats();
Dolphin d = new Dolphin();
System.out.println("人間の足の数:" +h.legNumber);
System.out.println("猫の足の数:" + c.legNumber);
System.out.println("イルカの体長:" + d.length);
h.setAction(3,4);//適当な値を設定
c.setAction(6,7);
d.setAction(8,9);
System.out.println("人間の肺呼吸" + h.pulmonarybreath);
System.out.println("人間の胎生" + h.viviparity);
//以下,猫とイルカも上記のように記す
}}}}}
なお,胎生と肺呼吸という定義もおかしいと思いますが,思いつかなかったため,気にしないで下さい.
コンパイルに失敗するのであれば、ソースなんかよりそのエラーメッセージの方が重要なのですが・・・
はじめまして。
もうちょっと遅いかな?と思ったけどレスさせていただきます。

コンパイルエラーっていうことなんですが、まずはソースを整理することから始めるといいんじゃなかろうかと思います。

私はJAVAはほとんど経験無いもので、以下はC#のかなーり大雑把なソース"もどき"ですが

***********************************************************
namespace mainarea
{
class MainForm : System.Windows.Forms.Form
{
//メインフォーム
public MainForm()
{
//初期設定処理
InitializeCompornent();

//年を取得する
GetNowDate();

//フォーカス設定
this.Text_Year.focus();
}

// 現在年を取得
private GetNowDate()
{
this.Text_Year = NowDate.ToString("YYYY");
}
}

//アプリケーションのメインエントリポイント
[STAThread]
static void Main()
{
Application.Run(new MainForm());
}
}

***********************************************

俗に言う「インデント」というやつですが、このようにタブを使ってカッコの位置をはっきりさせると間違いも少なくなります。
人それぞれに見やすい書き方というのはあると思いますが、まずは本やサイトを参考にして真似てみるところから始めてみるといいんじゃないでしょうか。
コンパイルエラーを減らすには有効なはずです。
あと、EEさんもおっしゃられてますが、エラーメッセージをよくみると結構わかるものです。
実際の間違いとは違うエラーを指摘されることもあるのですが、エラー行として指摘されている箇所の前後を見てみるといいと大体見つかります。

では、頑張ってください!
ありがとうございます!
がんばります!!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板