質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

377閲覧

Eclipseにおいて、メインメゾットの書き方がわからない

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2024/07/03 07:08

編集2024/07/03 08:27

実現したいこと

EclipseでJavaの「キーボードから入力された英文字列を配列に格納し,文字列の右から2番目の文字の表示と文字列の長さを表示する」プログラムをつくるのにあたって抽象クラスの「AbstDisplay」と継承クラスの「GetLastChar」を作成したのですが、2つのクラス内のいづれかにメインメゾットを配置し、プログラミングを実行させる処理を教えてください。

発生している問題・分からないこと

public static void main(String[] args)内に書く処理内容

該当のソースコード

Java

1//抽象クラス AbstDisplay.java 2public abstract class AbstDisplay 3{ 4 abstract void print(String str); 5} 6 7 8 9//継承クラス GetLasChar.java 10class GetLasChar extends AbstDisplay { 11private int length; 12private char moji[] = new char[10]; 13 14public void print(String str) { 15if (moji.length < str.length()) { 16System.out.printf("%d 文字を超えるため配列の要素数を超えています。%n", moji.length); 17} 18length = Math.min(moji.length, str.length()); 19for (int i = 0; i < length; i++) { 20moji[i] = str.charAt(i); 21} 22System.out.println(moji[length - 2]); 23} 24 25

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

完成したのち、実行しようとすると「メイン型含まれていない」とエラーを返されたので、調べるとメインメゾットをクラス内に配置していないことが原因でした。

補足

抽象クラス名: AbstDisplay
抽象メソッド:void print(String str)

クラス名: GetLastChar (AbstDisplayクラスを継承)
フィールド:private int length 文字列の文字数を格納
private char moji[10] 文字列格納用

メソッド: public void print(String str)

str 内の右から2番目の文字と,文字列の長さを表示する。
ただし,例外処理(try ~ catch)を利用して 10 文字を超えていれば“10 文字を超えるため配列の要素数を超えています。”と表示し,10文字までの文字を配列に格納する。
このとき,文字列の長さも10文字としてよい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juner

2024/07/03 08:24 編集

ソースの language が JavaScript になっていますが、 Java を書くなら Java と指定した方がいいと思われます。 JavaScript には abstract は無いので
退会済みユーザー

退会済みユーザー

2024/07/03 08:27

コメントありがとうございます。質問を修正したのでご確認よろしくお願いいたします。
jimbe

2024/07/03 18:18 編集

>「メイン型含まれていない」とエラーを返された 操作をしてエラーが出たのでしたら、操作手順をリストしてエラー文をそのままコピペしてください。意訳されても実際はどうでは無い可能性があります。 [3-4. 発生している問題・エラーメッセージを書きましょう] https://teratail.com/help/question-tips#questionTips34 >アドバイス >表示されたエラーメッセージをそのままコピー&ペーストしましょう。>自分でタイプしなおしたり、自分で解釈・要約しようとしてはいけません。 >大事な部分が抜け落ちたり情報が違うものになってしまう可能性があるからです。 それと些細なことですが main も『メソッド』と呼んだ方が良いと思います。
TN8001

2024/07/04 08:56

@jimbeさん おそらく質問者さんは(mainがないということ以外)何もわかっていないと思いますよ。 [EclipseでJavaのプログラミングしている方に質問です。下記の画像... - Yahoo!知恵袋](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11300453056) @HT20A107さん わからないこと自体は責められるものではありません(誰しも最初は何もわからなかったはずですから) ただ課題を他人に解いてもらってそのまま提出したところで、理解が進むとも思えません。 少なくともteratailでは歓迎されない質問です。 [ヘルプ|推奨していない質問](https://teratail.com/help/avoid-asking)
jimbe

2024/07/04 11:53

袋て断られたのでこちらで貰おうという魂胆だったんですね。 せめてエラーのスクリーンショットでも載せて頂ければ質問のカタチになると思ったのですが。 問題文をざっと読んだ感じではキー入力で動作するようなのを作れという風に見えたので main も必要そうでしたが、袋の回答者さんはそうは思わなかったようですね。
TN8001

2024/07/04 12:40

なんていうかできないことを必要以上に恥ずかしがっているように思うんですよね。 初心者なんだからできなくて当然で、開き直ってくれればいいのにと思いますね。 先生にじゃんじゃん質問したらいいのにって思っちゃいます(それが仕事なんだし) この質問もabstractをやっている・コードもそこそこ書けているのに、「なんでmainに書く内容が分からないんだろう??」と不思議に思っていました。 問題のひどさのほうが気になってggったら先のurlが出てきた次第です(普段知恵袋なんて見てないw [class GetLasChar extends AbstDisplay - Google 検索](https://www.google.co.jp/search?q=class+GetLasChar+extends+AbstDisplay) そういう(問題のひどさという)意味ではちょっと同情しています^^; 今できてることを素直に書いてくれれば、レベルに合った回答を貰えると思うんですけどね~(わたしは教えるのが得意でないのでそういうのはあまり回答しませんが^^; 「単位貰えりゃ何でも良いんだよ」って方は、あっちだけでやってほしいですね。
guest

回答1

0

ベストアンサー

Eclipseにおいて、メインメゾットの書き方がわからない

メソッド(method)です。

public static void main(String[] args)内に書く処理内容

おそらくこんな感じになるんじゃないでしょうか。

java

1public static void main(String[] args) { 2 var scanner = new Scanner(System.in); 3 var str = scanner.nextLine(); 4 var getLastChar = new GetLastChar(); 5 getLastChar.print(str); 6}

ここまでできていれば60点ぐらいは貰えるかもしれませんが、

  • 「文字列の長さを表示」していません
  • 「例外処理(try ~ catch)を利用して」いません

ので満点にはならないでしょう。


にしても問題も相当ひどいですね。
抽象クラスの練習なのか例外の練習なのかわかりませんが、意味不明すぎて模範解答が思いつかないですね...

抽象クラスは(今後何か展開があるとして)まあいいでしょう。

  • フィールドの用途が全くわからない
    今後何かに使うのか?何に??
  • 文字数制限がないほうが明らかに簡単
    なんでわざわざ配列に入れさせるのか謎い。
  • 自然に例外を出す手段を思いつかない
    lengthを確認したうえでわざとIndexOutOfBounds出させる気か?
  • 2文字未満の時の指示がない
    10文字以上はやけに具体的なのにw

投稿2024/07/04 08:58

TN8001

総合スコア9640

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2024/07/04 08:58

回答というより問題への突っ込みになってしまった^^; 模範解答が分かったら教えてほしいぐらいですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問