Results 1 to 2 of 2
Thread: Accessor returns string as null
- 09-17-2013, 02:13 AM #1
Member
- Join Date
- Sep 2013
- Posts
- 10
- Rep Power
- 0
Accessor returns string as null
So I can't figure out why the accessor (I'm guessing it's because of the accessor) keeps returning the String name as null when I run the program. I am trying to use a scanner in the tester program to store a string for the name, but whenever I try to print it out, the virtual machine prints "null" instead of the name.
Tester-
Java Code:import java.util.Scanner; public class StudentTester { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("What is student 1's name?"); String name1 = scan.nextLine(); System.out.println("What is student 2's name?"); String name2 = scan.nextLine(); Student s1 = new Student(); Student s2 = new Student(8,89,712,name2); System.out.println(s1.getName() + "'s current Average is: " + s1.getAverage() + " Total is: " + s1.getTotal() + " Number of Quizzes is: " + s1.getQuizNumber()); System.out.println(s2.getName() + "'s current Average is: " + s2.getAverage() + " Total is: " + s2.getTotal() + " Number of Quizzes is: " + s2.getQuizNumber()); System.out.println("==========After new quiz is entered ============"); s1.addQuiz(20); s2.addQuiz(50); System.out.println(s1); System.out.println(s2); } }
Class-
Java Code:public class Student { //Instance Variables private int totalScore; private int averageScore; private int quizNumber; private String name; //Construcctors public Student() { totalScore = 0; quizNumber = 0; averageScore = 0; name = null; } public Student(int number, int average, int total, String name) { quizNumber = number; totalScore = total; averageScore = average; name = name; } //Accessors public double getAverage() { return averageScore; } public int getTotal() { return totalScore; } public int getQuizNumber() { return quizNumber; } public String getName() { return name; } //Mutators public void addQuiz(int quiz) { totalScore = totalScore + quiz; quizNumber = quizNumber + 1; averageScore = totalScore / quizNumber; } //toString public String toString() { String str = "Student's average score is " + averageScore + " in " + quizNumber + " tests"; return str; } }
- 09-17-2013, 02:54 AM #2
Senior Member
- Join Date
- Jan 2013
- Location
- Northern Virginia, United States
- Posts
- 6,226
- Rep Power
- 15
Re: Accessor returns string as null
Because name defaults to nulll. When you do name = name that doesn't change the instance field. You need to do this.name = name to distinguish between the instance field and the local argument.
Regards,
JimThe JavaTM Tutorials | SSCCE | Java Naming Conventions
Poor planning on your part does not constitute an emergency on my part
Similar Threads
-
ArrayList returns null
By aborgeld in forum New To JavaReplies: 6Last Post: 04-01-2011, 02:32 PM -
XML and SAX - class returns 'null'
By Laffel in forum Advanced JavaReplies: 2Last Post: 03-07-2011, 10:14 PM -
Splashscreen returns null
By Charlie161 in forum AWT / SwingReplies: 2Last Post: 03-04-2011, 02:25 PM -
String passed as argument to a constructor returns null value
By eLancaster in forum New To JavaReplies: 1Last Post: 02-07-2011, 11:44 AM -
getImplementationVersion() returns null
By newbiejava in forum New To JavaReplies: 22Last Post: 09-12-2010, 10:31 AM
Bookmarks