Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
karrrolina
Člen
Avatar
karrrolina:2.8.2013 22:15

Prosím o radu s těmito dvěma třídami: Scan jednoho z řetězců v class EmployeeTest, označený komentářem, je Javou ignorovaný.


package ch3;

import java.util.Scanner;

public class EmployeeTest {

public static void main(String[] args) {
Employee empM = new Employee( "John", "Novak", 0.00 );
Employee empF = new Employee( "Jane", "Novak", 0.00 );

Scanner sc = new Scanner( System.in );

System.out.prin­tln("\n\nYOU ARE ABOUT TO SET A FEMALE EMPLOYEE MONTHLY SALARY RECORD");

// enter, set FEMALE FIRST NAME
System.out.prin­tln("Please enter female first name :");
String firstNamF = sc.nextLine();
empF.setFirstNa­me(firstNamF);

// enter, set FEMALE LAST NAME
System.out.prin­tln("Please enter female last name :");
String lastNamF = sc.nextLine();
empF.setLastNa­me(lastNamF);

// enter, set FEMALE MONTHLY SALARY
System.out.prin­tln("Please enter female monthly salary :");
double monthlySalarF = sc.nextDouble();
empF.setMonthSa­lary(monthlySa­larF);

// DISPLAY empF's YEARLY SALARY
System.out.prin­tf("\nYearly salary for %s %s (female) is %.2f", empF.getFirstNa­me(), empF.getLastName(), empF.getYearlSa­lary());

System.out.prin­tln("\n\nYOU ARE ABOUT TO SET A MALE EMPLOYEE MONTHLY SALARY RECORD");

// enter, set MALE FIRST NAME
System.out.prin­tln("Please enter male first name :"); // ****** This entry does NOT work ******
String firstNamM = sc.nextLine();
empM.setFirstNa­me(firstNamM);

// enter, set MALE LAST NAME
System.out.prin­tln("Please enter male last name :");
String lastNamM = sc.nextLine();
empM.setLastNa­me(lastNamM);

// enter, set MALE MONTHLY SALARY
System.out.prin­tln("Please enter male monthly salary :");
double monthlySalarM = sc.nextDouble();
empM.setMonthSa­lary(monthlySa­larM);

// DISPLAY empM's YEARLY SALARY
System.out.printf(" \nYearly salary for %s %s (male) is %.2f\n\n", empM.getFirstNa­me(), empM.getLastName(), empM.getYearlSa­lary() );

sc.close();
}
}


package ch3;

public class Employee {
private String firstName;
private String lastName;
private double monthSalary;

public Employee( String fNam, String lNam, double mSal ) {
firstName = fNam;
lastName = lNam;
if( mSal > 0.0 )
monthSalary = mSal;
}

// set, get FIRST_NAME
public void setFirstName( String firstN ) {
firstName = firstN;
}

public String getFirstName() {
return firstName;
}

// set, get LAST_NAME
public void setLastName( String lastN ) {
lastName = lastN;
}

public String getLastName () {
return lastName;
}

// set, get MONTHLY_SALARY
public void setMonthSalary( double monthS ) {
if ( monthS > 0 )
monthSalary = monthS;
}

public double getMonthSalary() {
return monthSalary;
}

// get YEARLY SALARY
public double getYearlSalary() {
return monthSalary * 12;
}

}

 
Odpovědět
2.8.2013 22:15
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na karrrolina
Petr Nymsa:2.8.2013 22:16

Tohle nikdy číst nebude. Je tu tlačítko vložit zdrojový kód :)

Nahoru Odpovědět
2.8.2013 22:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Kit
Tvůrce
Avatar
Odpovídá na karrrolina
Kit:2.8.2013 22:47

Když budeš po integeru číst string, tak ti to fungovat nebude. Musíš odřádkovat vstup tak jak je to v učebnici.

BTW: Nauč se vkládat zdrojové kódy. Nejen tady.

Editováno 2.8.2013 22:49
Nahoru Odpovědět
2.8.2013 22:47
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na karrrolina
Kit:2.8.2013 22:51

Jinak ten program vypadá strašně. Dá se zkrátit na čtvrtinu.

Nahoru Odpovědět
2.8.2013 22:51
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
karrrolina
Člen
Avatar
Odpovídá na Kit
karrrolina:2.8.2013 22:53

Skenuju tam STRING po DOUBLE. Bude to jak říkáš, děkuju ti. Jakou učebnici máš na mysli, prosím tě? (Postupuju podle Java How to Program, Deitel & Deitel.)

Zatím nevím co znamená "odřádkovat vstup".

Editováno 2.8.2013 22:55
 
Nahoru Odpovědět
2.8.2013 22:53
Avatar
Kit
Tvůrce
Avatar
Odpovídá na karrrolina
Kit:2.8.2013 23:00

Není to sice nejlepší učebnice, ale je od Herouta.

Pro výuku OOP je však lepší Thinking in Java
http://www.mindview.net/Books/TIJ/

Nahoru Odpovědět
2.8.2013 23:00
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
karrrolina
Člen
Avatar
karrrolina:2.8.2013 23:10

*** DĚKUJU TI ** , dohledat řešení po tvojí laskavé a cenné radě byla písnička.

 
Nahoru Odpovědět
2.8.2013 23:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.