Error cannot find symbol, method getcustomerdiscount() [duplicate] - java

This question already has answers here:
What does a "Cannot find symbol" or "Cannot resolve symbol" error mean?
(18 answers)
Closed 3 years ago.
Having an issue on line 192 in netbeans
cannot seem to figure out were the issue is
Line 192: System.out.println("Percent off: "+customer.getcustomerDiscount());
Error:
cannot find symbol
symbol: method getcustomerDiscount()
location: variable customer of type Customer
(PS yes i know it's in 1 java file, it's supposed to be)
package Driver2;
import java.util.Scanner;
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
class Person{
private String name;
private String address;
private String number;
private int customerPurchase;
//Constructors
public Person(String name, String address, String number, int customerPurchase){
this.name = name;
this.address = address;
this.number = number;
this.customerPurchase = customerPurchase;
}
public Person(){}
//Accessors
public String getName(){
return this.name;
}
public String getAddress(){
return this.address;
}
public String getNumber(){
return this.number;
}
public int getcustomerPurchase(){
return this.customerPurchase;
}
//Mutators
public void setName(String n){
this.name = n;
}
public void setAddress(String a){
this.address = a;
}
public void setNumber(String n){
this.number = n;
}
public void setcustomerPurchase(int a){
this.customerPurchase = a;
}
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
class Customer extends Person{
private String customerNumber;
private boolean recieveMail;
//Constructors
public Customer(String name, String address, String number, String customerN, boolean rm, int customerPurchase) {
super(name, address, number, customerPurchase);
this.customerNumber = customerN;
this.recieveMail = rm;
}
public Customer(){}
//Accessors
public String getCustomerNumber(){
return this.customerNumber;
}
public boolean getRecieveMail(){
return this.recieveMail;
}
//Mutators
public void setCustomerNumber(String c){
this.customerNumber = c;
}
public void setRecieveMail(boolean r){
this.recieveMail = r;
}
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
class Driver1 extends Customer
{
private int customerPurchase = 0;
private int customerDiscount;
//Constructors
/* public Driver1(String name, String address, String number, String customerN, boolean rm, int customerPurchase)
{
super();
this.customerPurchase = customerPurchase;
//this.customerDiscount = customerDiscount;
}*/
public Driver1(String name, String address, String number, String customerN, boolean rm, int customerPurchase) {
//super(name, address, number, customerPurchase, customerN, rm);
//this.customerPurchase = customerN;
//this.customerDiscount = pc;
}
public Driver1()
{}
//Accessors
//#Override
//public int getcustomerPurchase()
//{
// return this.customerPurchase;
//}
public int getcustomerDiscount()
{
return this.customerDiscount;
}
//Mutators
/*
#Override
public void setcustomerPurchase(int c)
{
this.customerPurchase = c;
}*/
public void setcustomerDiscount(int r)
{
this.customerPurchase = r;
if (r >= 500)
{
System.out.print("5%");
}
else if (r >= 1000)
{
System.out.print("6%");
}
else if (r >= 1500)
{
System.out.print("7%");
}
else if (r >= 2000)
{
System.out.print("10%");
}
else
{
System.out.print("");
}
}
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
class Driver3
{
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter name of customer:");
String name1 = scanner.nextLine();
System.out.print("Enter address of customer:");
String address1 = scanner.nextLine();
System.out.print("Enter phone number of customer:");
String number1 = scanner.nextLine();
System.out.print("Enter customer number:");
String customerNumber = scanner.nextLine();
System.out.print("Enter yes/no -- does the customer want to recieve mail?:");
String answer = scanner.nextLine();
boolean recieveMail = (answer.equals("yes"));
System.out.print("Enter amount customer has spent:");
int customerPurchase = scanner.nextInt();
Customer customer = new Customer(name1, address1, number1, customerNumber, recieveMail, customerPurchase);
System.out.println("\nCustomer: ");
System.out.println("Name: "+customer.getName());
System.out.println("Address: "+customer.getAddress());
System.out.println("Phone Number: "+customer.getNumber());
System.out.println("Customer Number: "+customer.getCustomerNumber());
System.out.println("Recieve Mail?: "+customer.getRecieveMail());
System.out.println("Amount Purchased: "+customer.getcustomerPurchase());
System.out.println("Percent off: "+customer.getcustomerDiscount());
}
}
Additional
I am a little confused, i called the driver 1 and even made an object and couldent get it to work also another question popped up when i tested the if else statement another way
Question Should i leave the if else statement inside the setter? or put into the getter? i think i have an issue were i am not retrieving a string because it is all set as a INT

You are trying to call getcustomerDiscount on a Customer object. The method is not defined on this class but on Driver1.
Also: You should try to use Java naming conventions, in this case getcustomerDiscount and setcustomerDiscount should be renamed to getCustomerDiscount and setCustomerDiscount respectively.

Related

How do I assign object from one class to another class and how do I calculate double and int inside an ArrayList?

I have an assignment but i have problem trying to do some part of it. Appreciate if anyone can give me a hand.
Assignment brief: https://pastebin.com/3PiqvfTE
Main Method: https://pastebin.com/J2kFzB3B
import java.util.ArrayList;
import java.util.Scanner;
public class mainMethod {
public static void main(String[] args) {
//scanner
Scanner scanner = new Scanner (System.in);
//subject object
Subject subject = new Subject (0,null,0);
System.out.println("How many subject do you want to enter: ");
int subjectNumber = scanner.nextInt();
for (int j = 0; j < subjectNumber; j++) {
//subject ID
System.out.println("Please enter the subject ID: ");
int subID = scanner.nextInt();
//subject Name
System.out.println("Please enter subject name: ");
String subName = scanner.next();
//subject fee
System.out.println("Please enter subject fee: ");
double subFee = scanner.nextDouble();
//add subject
subject.addSubject(subID, subName, subFee);
}
//display subject
System.out.println(subject.getSubject());
/*
//loop for part time teacher
System.out.println("Please enter how many part time teacher do you have: ");
int PTcounter = scanner.nextInt();
for (int i = 0; i < PTcounter; i++) {
*/
Teacher teach = new Teacher (0,null,null);
//teacher employee ID
System.out.println ("Please enter the teacher employee ID: ");
int tid = scanner.nextInt();
//teacher name
System.out.println("Please enter the teacher name: ");
String tname = scanner.next();
//teacher gender
System.out.println("Please enter the teacher gender: ");
String tgender = scanner.next();
//add teacher details
teach.addTeacher(tid, tname, tgender);
//display teacher details
System.out.println(teach.getTeacher());
//call address class
Address address = new Address (0,null,null,0);
//address house number
System.out.println("Please enter house number: ");
int addyNum = scanner.nextInt();
//address street name
System.out.println("Please enter street name: ");
String StreetName = scanner.next();
//address city
System.out.println("Please enter city: ");
String City = scanner.next();
//address post code
System.out.println("Please enter postcode: ");
int Postcode = scanner.nextInt();
//add address
address.addAddress(addyNum, StreetName, City, Postcode);
//display address
System.out.println(address.getAddress());
//call Part Time Salary class
PartTimeSalary ptSalary = new PartTimeSalary(0,0);
//max hours
System.out.println("Please enter maximum work hours: ");
int maxHours = scanner.nextInt();
//hourly rate
System.out.println("Please enter hourly rate: ");
double hourlyRate = scanner.nextDouble();
ptSalary.addPTSalary(maxHours, hourlyRate);
System.out.println(ptSalary.getHourlyRate());
//System.out.printf("Teacher details is %s, Subject details is %s, Address is %s", teach.toString(),subject.toString(),address.toString());
}
}
1st problem. I have a subject class and a teacher class. Teacher will be able to teach maximum of 4 subject. I have prompt user to enter subject details before entering teacher details, so when user enter teacher details they will be able to assign subject to teacher just by using the subjectID. I have problem implementing this. My subject is already store in an ArrayList but how to I connect this with teacher. And in the end the program will display what subject each teacher teaches.
Subject Class: https://pastebin.com/iBYFqYDN
import java.util.ArrayList;
import java.util.Arrays;
public class Subject {
private int subjectID;
private String subjectName;
private double fee;
private ArrayList <Subject> subjectList = new ArrayList <Subject>();
public Subject(int subjectID, String subjectName, double fee) {
this.subjectID = subjectID;
this.subjectName = subjectName;
this.fee = fee;
}
public int getSubjectID () {
return subjectID;
}
public void setSubjectID (int subjectID) {
this.subjectID = subjectID;
}
public String getSubjectName () {
return subjectName;
}
public void setSubjectName (String subjectName) {
this.subjectName = subjectName;
}
public double getFee () {
return fee;
}
public void setFee (double fee) {
this.fee = fee;
}
#Override
public String toString() {
return "[subjectID=" + subjectID + ", subjectName=" + subjectName + ", fee=" + fee + "]";
}
public void addSubject (int subjectID, String subjectName, double fee) {
subjectList.add(new Subject(subjectID, subjectName, fee) );
}
public String getSubject () {
return Arrays.toString(subjectList.toArray());
}
}
Teacher class: https://pastebin.com/Np7xUry2
import java.util.ArrayList;
import java.util.Arrays;
public class Teacher {
private int employeeID;
private String name;
private String gender;
private ArrayList <Teacher> teacherDetailsList;
public Teacher (int employeeID, String name, String gender) {
this.employeeID = employeeID;
this.name = name;
this.gender = gender;
this.teacherDetailsList = new ArrayList <Teacher>();
}
public int getEmployeeID () {
return employeeID;
}
public void setEmployeeID (int employeeID) {
this.employeeID = employeeID;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public String getGender () {
return gender;
}
public void setGender (String gender) {
this.gender = gender;
}
#Override
public String toString() {
return "[employeeID=" + employeeID + ", name=" + name + ", gender=" + gender + "]";
}
public void addTeacher (int employeeID, String name, String gender) {
teacherDetailsList.add(new Teacher (employeeID,name,gender));
}
public String getTeacher () {
return Arrays.toString(teacherDetailsList.toArray());
}
}
2nd problem. Teacher will either be part time or full time teacher. Part time teacher will have a maximum work hour they can work and an hourly rate they will be paid for, so the final salary of part time teacher will be "maximum hours" multiply by "hourly rate". I have store "hourly rate" and "maximum work hours" in an ArrayList but how do I call them to make the multiplication then displaying at the end.
Part time salary class: https://pastebin.com/iGKpu87Y
import java.util.ArrayList;
public class PartTimeSalary {
private int maxHour;
private double hourlyRate;
private double hourlySalary;
private ArrayList <PartTimeSalary> PTSalary = new ArrayList <PartTimeSalary>();
private ArrayList <Double> finalHourlySalary = new ArrayList <Double>();
public PartTimeSalary (int maxHour, double hourlyRate) {
this.maxHour = maxHour;
this.hourlyRate = hourlyRate;
}
public int getMaxHours () {
return maxHour;
}
public void setMaxHour (int maxHour) {
this.maxHour = maxHour;
}
public double getHourlyRate () {
return hourlyRate;
}
public void setHourlyRate (double hourlyRate) {
this.hourlyRate = hourlyRate;
}
public double getHourlySalary() {
hourlySalary = hourlyRate*maxHour;
return hourlySalary;
}
public void addPTSalary (int maxHour, double hourlyRate) {
PTSalary.add(new PartTimeSalary(maxHour,hourlyRate));
}
public void FinalHourlySalary (double hourlySalary) {
hourlySalary = hourlyRate * maxHour;
finalHourlySalary.add(hourlySalary);
}
public ArrayList<Double> getFinalSalary () {
return (new ArrayList <Double>());
}
}
3rd question. I have an address class which is suppose to be part of the Teacher class. I can't seem to connect the address class with teacher class.
Address class: https://pastebin.com/s2HN5p80
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Address {
private int houseNum;
private String streetName;
private String city;
private int postcode;
private List <Address> address = new ArrayList <Address>();
public Address (int houseNum, String streetName, String city, int postcode) {
this.houseNum = houseNum;
this.streetName = streetName;
this.city = city;
this.postcode = postcode;
}
public int getHouseNum() {
return houseNum;
}
public void setHouseNum (int houseNum) {
this.houseNum = houseNum;
}
public String getStreetName() {
return streetName;
}
public void setStreetName (String streetName) {
this.streetName = streetName;
}
public String getCity() {
return city;
}
public void setCity (String city) {
this.city = city;
}
public int getPostcode() {
return postcode;
}
public void setPostcode (int postcode) {
this.postcode = postcode;
}
public void addAddress (int houseNum, String streetName, String city, int postcode) {
address.add(new Address (houseNum,streetName,city,postcode));
}
#Override
public String toString() {
return "[houseNum=" + houseNum + ", streetName=" + streetName + ", city=" + city + ", postcode="
+ postcode + "]";
}
public String getAddress () {
return Arrays.toString(address.toArray());
}
}
Thank you 😃😊
Question 1)
Put the "teacherDetailsList" and "subjectList" ArrayLists in the main method, not the consructors. Add the teachers and subjects in main methods, not constructors.
Add a new ArrayList called "mySubjects" as a field for the Teacher Class
Add the following 2 method to the Teacher class:
public Teacher (int employeeID, String name, String gender, ArrayList<Subject> s) {
this.employeeID = employeeID;
this.name = name;
this.gender = gender;
this.mySubjects=s;
}
public Teacher (int employeeID, String name, String gender, Subject s) {
this.employeeID = employeeID;
this.name = name;
this.gender = gender;
this.mySubjects.add(s);
}
public void addSubject(Subject s, boolean b){
if(mySubjects.size()<4)mySubjects.add(s);
else throw OutOfBoundsError;
}
public void removeSubject(Subject s, boolean b){
mySubject.remove(s);
}
public void addSubject(Subject s){
s.changeTeacher(s);
}
public void removeSubject(Subject s){
mySubject.remove(s);
}
Add the following methods & fields to Student class
private Teacher teacher;
public Subject(int subjectID, String subjectName, double fee, Teacher t) {
this.subjectID = subjectID;
this.subjectName = subjectName;
this.fee = fee;
this.setTeacher(t);
}
public void setTeacher(Teacher t){
try{
t.addSubject(this);
teacher=t;
}
catch(OutOfBoundsError e){
System.out.println(t.getName()+" already has a full schedule.");
}
}
public void changeTeacher(Teacher t){
teacher.removeSubject(this);
teacher = t;
t.addSubject(this);
}
Question 2)
make a new double field, constructor parameter (for every constructor in the class), mutator method and accessor mutator called maxHour in the class Subject
add a double field to the teacher class called salary. If the teacher is part-time, set this to 0 in the constructor.
add this method to Teacher class:
public double getSalary(){
if(salary!=0) return salary;
double s=0;
for(Subject i: mySubjects) s+=i.getFee()*i.getMaxHours();
return s;
}
You honestly no longer need the PartTimeSalary class now.
Question 3
make a new Address field, constructor parameter (for every constructor in the class), mutator method and accessor mutator called myAddress in the class Teacher
Don't bother with the ArrayList stuff in your Address Class

Can't get the return new Chat to retrive the values

Hi so I have a project for college where I need to build a chat in java that to work only in on computer where you execute the code and you give the name of the two users and a translation value but I am having a problem with the way they want me to do it since I cant use super, arrays , extends, or inherences I am having a problem how it currently is I my Main like this
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Chat ch = null;
boot(in, ch);
menu(in, ch);
}
public static Chat boot (Scanner in, Chat ch){
String name1;
String name2;
int transvalue = 0;
System.out.print("Username 1:");
name1=in.nextLine();
do{
System.out.print("Username 2:");
name2=in.nextLine();
if (name1.equals(name2)){
System.out.println("Names can't be equal");
}
}while(name1.equals(name2));
do{
System.out.print("Translation Value:");
transvalue=in.nextInt();
in.nextLine();
if (transvalue<1 || transvalue>26){
System.out.println("Value Can only be between 0 and 26");
}
}while(transvalue<1 || transvalue>26);
return new Chat(name1,name2,transvalue);
}
So this show be adding the info I put in to my class Chat
public class Chat {
private static final int id1 = 1;
private static final int id2 = 2;
private Users u1;
private Users u2;
private Conversation conv;
public Chat(String name1, String name2, int transvalue){
u1 = new Users(id1,name1);
u2 = new Users(id2,name2);
conv = new Conversation(transvalue);
}
public static int getId1() {
return id1;
}
public static int getId2() {
return id2;
}
public Users getU1() {
return u1;
}
public void setU1(Users u1) {
this.u1 = u1;
}
public Users getU2() {
return u2;
}
public void setU2(Users u2) {
this.u2 = u2;
}
public Conversation getConv() {
return conv;
}
public void setConv(Conversation conv) {
this.conv = conv;
}
}
but when I add the info and try to return it like for example:
System.out.print(ch.getU1());
or
System.out.print(ch.getU1().getName());
I am getting a null am I doing something wrong?
public class Users {
private int id ;
private String name;
private String mess;
public Users(int id,String name){
this.id=id;
this.name=name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Can anyone find or point out what I'm doing wrong
Thank you in Advance to all that take the time to Help

Syntax error with variable

I am having errors below and I am confused why this is a Lab to make a storage spot for a students information.
import java.util.Arrays;
I have a problem with the square brackets below
public class Student {
private String studentID;
private String studentName;
private String studentMajor;
private double studentGPA;
private String studentGrad;
private long[] ;
And a problem with Student() below
public Student(){
studentID = "";
studentName = "";
studentMajor = "";
studentGPA = 0;
studentGrad = "";
}
public Student(String stuID, String stuName, String stuMajor, double stuGPA, String stuGrad) {
studentID = stuID;
studentName = stuName;
studentMajor = stuMajor;
studentGPA = stuGPA;
studentGrad = stuGrad;
}
public void setID(String ID) {
studentID = ID;
}
public void setName(String name) {
studentName = name;
}
public void setMajor(String major) {
studentMajor = major;
}
public void setGPA(double GPA) {
studentGPA = GPA;
}
public void setGrad(String Grad) {
studentGrad = Grad;
}
public String getID() {
return studentID;
}
public String getName() {
return studentName;
}
public String getMajor() {
return studentMajor;
}
public double getGPA() {
return studentGPA;
}
public String getGrad() {
return studentGrad;
}
public void printData() {
System.out.println("Student ID: "+studentID);
System.out.println("Student Name: " +studentName );
System.out.println("Student Major: "+studentMajor);
System.out.println("Student GPA: "+ studentGPA);
System.out.println("Student Year of Graduation: " +studentGrad);
}
}
private long[]; is incorrect syntax.
To complete the variable you must insert an identifier (the variable name).
In most IDE's (i.e. Eclipse and Netbeans), this incomplete variable will cause the next line to have issues. This is why public Student(){ (despite being completely valid code) is giving you an error. If you temporarily delete the line private long[]; you should see this error go away.
From the code you supplied, it looks like private long[]; can be deleted anyway as an array isn't being used.

3 separate ArrayList

ACME wants to layoff some employees. Using three ArrayLists, form three lists of employees. The first list will contain all the programmers, the second all the non-programming people making over one hundred thousand dollars, and the last all other people. Using separate loops print out the contents of each ArrayList. (The following are what I did, but not work... looking for help)
import java.util*;
class Employee
{
private String name;
private String address;
private String position;
private double salary;
private String getName()
{return name;}
public String getAddress()
{return address;}
public double getPosition()
{return position;}
public double getSalary()
{return salary;}
public void setName(String aName)
{name=aName;}
public void setAddress(String aAddress)
{address=aAddress;}
public void set(double aPosition)
{postion=aPosition;}
public void setSalary(double aSalary)
{salary=aSalary;}
public employee(String aName, String aAddress, double aPosition; double aSalary)
{
name=aName;
address=aAddress;
position=aPosition;
Salary=aSalary; }
public String toString()
{return name+address+position+salary;}
}
class employee
{public static void main(String[] args)
{Scanner in = new Scanner(System.in);
Employee[] Newemp=new Car[500];
for(int i=0, i<Newemp.length;i++)
{System.out.print(“Enter the name”);
String name=in.nextLine();
System.out.print(“Enter the address”);
String address=in.nextLine();
System.out.print(“Enter the position”);
double position=in.nextDouble();
System.out.print(“Enter the salary”);
double salary=in.nextInt() ;
in.nextLine();
Newemp[i]=new Employee(name, address, position, salary);
}
ArrayList<Employee>programmers=new ArrayList<Employee>();
ArrayList<Employee>nonprogrammers=new ArrayList<Employee>();
ArrayList<Employee>others=new ArrayList<Employee>();
for(int i=0; i<Newemp.salary; i++)
{if(Newemp[i]. getposition().equals(“programmer”))
programmers.add(Newemp[i]);
else if(Employee[i].getsalary()>100000
nonprogrammers.add(Newemp[i]);
else
others.add(Newemp[i]);
}
for(int i=0; i<programmer.();i++)
{
Employee<=programmer.get(i);
System.out.println(i);
}}}
i think this will help
for (int i = 0; i < Newemp.length; i++) {
if (Newemp[i].getPosition().equals("programmer")){
programmers.add(Newemp[i]);
System.out.println("programmers"+programmers);
}
else if (Newemp[i].getSalary()> 100000)
{
nonprogrammers.add(Newemp[i]);
System.out.println("salary 100000 thousand"+nonprogrammers);
} else{
others.add(Newemp[i]);
System.out.println("others"+others);
}
}
for (int i = 0; i < programmers.size(); i++) {
EmployeeData aa= programmers.get(i);
System.out.println("All aaray"+aa);
}
in your main()
for(int i=0; i < Newemp.salary; i++)
...
else if(Employee[i].getsalary()>100000
should be:
for(int i=0; Newemp[i] != null; i++)
...
else if([i].getsalary()>100000)
I hope you understand the concept of object, the methods & variables available with the array can not be mixed with others and vice-versa. length is a variable inside the array object which returns you the size. I would suggest instead of declaring a huge array and then iterating through it. Directly add your objects into an ArrayList as given below. I hope it helps.
import java.util.ArrayList;
import java.util.Scanner;
public class Employee {
private String name;
private String address;
private String position;
private double salary;`
public Employee(String aName, String aAddress, String aPosition,
double aSalary) {
name = aName;
address = aAddress;
position = aPosition;
salary = aSalary;
}
private String getName() {
return name;
}
public String getAddress() {
return address;
}
public String getPosition() {
return position;
}
public double getSalary() {
return salary;
}
public void setName(String aName) {
name = aName;
}
public void setAddress(String aAddress) {
address = aAddress;
}
public void set(String aPosition) {
position = aPosition;
}
public void setSalary(double aSalary) {
salary = aSalary;
}
public String toString() {
return name + address + position + salary;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int maxSize = 500;
ArrayList<Employee> programmers = new ArrayList<Employee>();
ArrayList<Employee> nonprogrammers = new ArrayList<Employee>();
ArrayList<Employee> others = new ArrayList<Employee>();
for (int i = 0; i < maxSize; i++) {
System.out.println("Enter the name");
String name = in.nextLine();
System.out.print("Enter the address");
String address = in.nextLine();
System.out.print("Enter the position");
String position = in.nextLine();
System.out.print("Enter the salary");
double salary = in.nextInt();
in.nextLine();
Employee newEmployee = new Employee(name, address, position, salary);
if (position.equals("programmer"))
programmers.add(newEmployee);
else if (salary > 100000)
nonprogrammers.add(newEmployee);
else
others.add(newEmployee);
}
}
}

Java - Adding 2 objects in an ArrayList

I'm pretty new to programming so I need help. I wanna add the SubjectGrades to the studentList ArrayList. But I think I'm doing the wrong way. What should I do for me to add the SubjectGrades to the ArrayList? Thanks
Here's my partial Main class.
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
private static Scanner in;
public static void main(String[] args) {
ArrayList<Student> studentList = new ArrayList<Student>();
//ArrayList<SubjectGrades> Grades = new ArrayList<SubjectGrades>();
in = new Scanner(System.in);
String search, inSwitch1, inSwitch2;
int inp;
do {
SubjectGrades sGrade = new SubjectGrades();
Student student = new Student();
System.out.println("--------------------------------------");
System.out.println("What do you want to do?");
System.out.println("[1]Add Student");
System.out.println("[2]Find Student");
System.out.println("[3]Exit Program");
System.out.println("--------------------------------------");
inSwitch1 = in.next();
switch (inSwitch1) {
case "1":
System.out.println("Input student's Last Name:");
student.setLastName(in.next());
System.out.println("Input student's First Name:");
student.setFirstName(in.next());
System.out.println("Input student's course:");
student.setCourse(in.next());
System.out.println("Input student's birthday(mm/dd/yyyy)");
student.setBirthday(in.next());
System.out.println("Input Math grade:");
student.subjectGrade.setMathGrade(in.nextDouble());
System.out.println("Input English grade:");
student.subjectGrade.setEnglishGrade(in.nextDouble());
System.out.println("Input Filipino grade:");
student.subjectGrade.setFilipinoGrade(in.nextDouble());
System.out.println("Input Java grade:");
student.subjectGrade.setJavaGrade(in.nextDouble());
System.out.println("Input SoftEng grade:");
student.subjectGrade.setSoftEngGrade(in.nextDouble());
studentList.add(student);
studentList.add(student.setSubjectGrade(sGrade)); //Here it is that I want to add
break;
//end case 1
Here is my Student Class.
package santiago;
public class Student {
private String lastName;
private String firstName;
private String course;
private String birthday;
SubjectGrades subjectGrade = new SubjectGrades();
public SubjectGrades getSubjectGrade() {
return subjectGrade;
}
public void setSubjectGrade(SubjectGrades subjectGrade) {
this.subjectGrade = subjectGrade;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
And my SubjectGrades class
package santiago;
public class SubjectGrades{
Double mathGrade, englishGrade, filipinoGrade, javaGrade, softEngGrade, weightedAverage;
public Double getMathGrade() {
return mathGrade;
}
public void setMathGrade(Double mathGrade) {
this.mathGrade = mathGrade;
}
public Double getEnglishGrade() {
return englishGrade;
}
public void setEnglishGrade(Double englishGrade) {
this.englishGrade = englishGrade;
}
public Double getFilipinoGrade() {
return filipinoGrade;
}
public void setFilipinoGrade(Double filipinoGrade) {
this.filipinoGrade = filipinoGrade;
}
public Double getJavaGrade() {
return javaGrade;
}
public void setJavaGrade(Double javaGrade) {
this.javaGrade = javaGrade;
}
public Double getSoftEngGrade() {
return softEngGrade;
}
public void setSoftEngGrade(Double softEngGrade) {
this.softEngGrade = softEngGrade;
}
public Double getWeightedAverage(){
weightedAverage = ((mathGrade + englishGrade + filipinoGrade + javaGrade + softEngGrade)*3) / 15;
return weightedAverage;
}
public String getScholarStatus(){
String status = "";
if(weightedAverage <= 1.5) {
status = "full-scholar";
} else if (weightedAverage <= 1.75){
status = "half-scholar" ;
} else {
status = "not a scholar";
}
return status;
}
}
Your mistake:
studentList.add(student);
studentList.add(student.setSubjectGrade(sGrade));
You are adding the student, then trying to add a void. The return value of setSubjectGrade is void, so nothing will be added:
Just do:
student.setSubjectGrade(sGrade);
studentList.add(student);
Where sGrade is an Object of type SubjectGrades, which was populated in the same way
student.subjectGrade.setSoftEngGrade(in.nextDouble()); was populated.
Use
ArrayList <SubjectGrades> list;
in student class instead SubjectGrades subjectGrade = new SubjectGrades();.
and generate getters and setters
Just remove this line:
studentList.add(student.setSubjectGrade(sGrade)); //Here it is that I want to add
The way you have done it, the student object already has the subjectGrade attribute with its values set.
You can access it with studentList.get(0).getSubjectGrade()

Categories

Resources