2017-10-09 3 views
-2

今日はかなりトリッキーな割り当てがあり、問題を見つけ出すのに苦労しています。私はエラーを続けている: "非静的変数名は、静的コンテキストから参照することはできません"。私の推測では、私のコードでどこかで作っている間違いがあり、私はいくつかの助けを求めています。事前に助けてください!Java宿題での非静的変数エラー

import java.util.Scanner; 
public class IfPractice 
{ 
    Scanner name = new Scanner(System.in); 
    String name = scan.nextLine(); 
    int space = name.indexOf(" "); 
    String firstName = name.substring(0, space); 
    private String nickname; 
    private String ageResponse; 
    int age = scan.nextInt(); 


    public static void main (String[] args) 
{ 
    System.out.print("Enter your full name: "); 
    System.out.print("Hello," + name +"!"); 

    if (firstname.equals(("James") || ("james"))) { 
     this.nickname = "Jim"; 
    } 

    else if(firstname.equals(("Robert") || ("robert"))) { 
     this.nickname = "Bobby"; 
    } 

    else if(firstname.equals(("Ashwani") || ("ashwani"))) { 
     this.nickname = "Ash"; 
    } 

    else { 
     this.nickname = "Buddy"; 
    } 

    System.out.println("I think I will call you" + this.nickname); 
    System.out.println("How old are you? "); 

    if (age <= 18) { 
     this.age = "You are a child"; 
    } 

    else if ((age >= 18) && (age <= 21)) { 
     this.age = "You are a child"; 
    } 

    else if ((age >= 21) && (age <= 65)) { 
     this.age = "You can vote, but you can not drink"; 
    } 

    else { 
     this.age = "You can get Social Security"; 
    } 

    System.out.println(ageResponse); 
} 
} 
+1

エラーメッセージにはすべて記載されています。 'firstname'はインスタンス変数で、静的関数main()からアクセスしようとしています。 – dave

答えて

0

thisインスタンスを静的メソッドから参照することはできません。あなたはmainメソッドの開始時にIfPracticeインスタンスを作成し、このように、このインスタンスを参照することができます

IfPractice ip = new IfPractice(); 
ip.nickname = “Jim”; 
0

非常に基本的なJavaの概念を。また、エラーメッセージにはすべてが表示されます。 firstnameはインスタンス変数であり、静的関数main()からはアクセスできません。

static- main()関数に行を移動し、main()関数からthis.部分をすべて削除することができます。

import java.util.Scanner; 
public class IfPractice 
{ 
    public static void main (String[] args) 
    { 
    System.out.print("Enter your full name: "); 
    System.out.print("Hello," + name +"!"); 
    Scanner name = new Scanner(System.in); 
    String name = scan.nextLine(); 
    int space = name.indexOf(" "); 
    String firstName = name.substring(0, space); 
    private String nickname; 
    ...... 
}