前提・実現したいこと
javaを勉強中です。
現在行なっている以下の課題について、調べながらコードを考えて入力したのですが上手く実行されません。
また、問題が難しく現在までの書き方の流れで合っているのかわかりません。
アドバイスやヒントをいただきたいです。よろしくお願いいたします。
【問題文】
下記の仕様に従ってHumanクラスを完成させてください。
Humanクラスを完成させた後に、Mainクラスにて下記の順で処理を実装してください。
1 Humanクラスのインスタンスを作成する。
2 setProfileメソッドの実引数にテストケースの入力値を適切な順に設定し、呼び出す。
3 printProfileメソッドを呼び出す。
〈Human クラス〉
・フィールド
String name
int age
String address
・setProfileメソッド
String,int,Stringの引数を持つ。
引数の値をそれぞれ適切なフィールドに設定する処理を実装する。
・printProfileメソッド
フィールドの値を画面に表示する。
01
入力値 技育助武,22,東京
期待値 技育助武22東京
02
入力値 技育太郎,23,大阪
期待値 技育太郎23大阪
発生している問題・エラーメッセージ
./Human.java:7: error: non-static variable this cannot be referenced from a static context this.name = name; ^ ./Human.java:8: error: non-static variable this cannot be referenced from a static context this.age = age; ^ ./Human.java:9: error: non-static variable this cannot be referenced from a static context this.address = address; ^ ./Human.java:13: error: non-static variable name cannot be referenced from a static context System.out.print(name + age + address); ^ ./Human.java:13: error: non-static variable age cannot be referenced from a static context System.out.print(name + age + address); ^ ./Human.java:13: error: non-static variable address cannot be referenced from a static context System.out.print(name + age + address); ^ 6 errors
該当のソースコード
Java
1Main.Java 2 3import java.util.Scanner; 4public class Main { 5 public static void main(String[] args) { 6 Scanner scan = new Scanner(System.in); 7 String text = scan.next(); 8 String[] values = text.split(",",0); 9 10 String name = values[0]; 11 int age = Integer.parseInt(values[1]); 12 String address = values[2]; 13 14 Human hito = new Human(); 15 16 hito.setProfile(name,age,address); 17 18 hito.printProfile(); 19 } 20}
Java
1Human.Java 2 3public class Human { 4 String name = ""; 5 int age = 0; 6 String address = ""; 7 8 public static void setProfile(String name,int age,String address){ 9 this.name = name; 10 this.age = age; 11 this.address = address; 12 } 13 14 public static void printProfile(){ 15 System.out.print(name + age + address); 16 } 17}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/20 05:07