2016-03-24 28 views
-1

Öğrenci alt sınıfının notunu yazdırmaya çalışıyorum, bir çeşit if deyimine veya dizisine ihtiyacım var gibi hissediyorum. 3 için bir sayı geçirebilecek bir kod hazırlamaya çalışıyorum. " Genç "ama aynı zamanda sınıf seviyesi yazdırmak için Student.JUNIOR gibi bir kod ile çağrılabilir. Benim arzu çıktı şöyledir:Sınıflar ve alt sınıflar için yazdırma

class Person { 
    String name; 
    String campus; 
    String phone; 
    String email; 
    int FRESHMAN = 1; 
    int SOPHMORE = 2; 
    int JUNIOR = 3; 
    int SENIOR = 4; 

    public Person(String n, String cam, String cell, String mail) { 
     name = n; 
     campus = cam; 
     phone = cell; 
     email = mail; 
    } 

    public String toString() { 
     return "Name:" + name + "; Campus:" + campus + "; Phone:" + phone + "; Email:" + email + " "; 
    } 
} 

class Student extends Person { 
    int grade; 

    public Student(String n, String cam, String cell, String mail, int grade) { 
     super(n, cam, cell, mail); 

    } 

    public String toString() { 

     return super.toString() + "\nClass:"; 
    } 
} 

class Employee extends Person { 
    private String title; 

    public Employee(String n, String cam, String cell, String mail, String position) { 
     super(n, cam, cell, mail); 
     title = position; 
    } 

    public String toString() { 
     return super.toString() + "\nTitle:" + title; 
    } 
} 

public class Exam3c { 
    public static void main(String[] args) { 

     String name = "David"; 
     String campus = "Terry"; 
     String phone = "302-573-3254"; 
     String email = "[email protected]"; 

     Person P1 = new Person(name, campus, phone, email); 
     System.out.println("P1: \n" + P1); 

     Student S1 = new Student(name, campus, phone, email, 1); 
     System.out.println("S1: \n" + S1); 

     Student S2 = new Student("Bill While", "Nowhere", "012-345-6789", "[email protected]", 3); 
     System.out.println("S2: \n" + S2); 

     Employee E1 = new Employee(name, campus, phone, email, "Faculty"); 
     System.out.println("E1: \n" + E1); 
    } 
} 
+0

Her şey şu ana kadar öğrendiğiniz şeye bağlı. Enumlar hakkında bilgi sahibi olsaydınız, bunun için iyi bir seçim olurlar (ancak sanırım enum'u bir int'den ziyade kendiniz geçersiniz). Değilse, bir 'switch' ifadesi ya da dizisi seçim araçları olacaktır. BTW - sabitlerin "Öğrenci" yerine "Kişi" içinde olmasının bir nedeni yoktur. Ayrıca, örnek alanlar değil, “statik final” olmalıdırlar. – RealSkeptic

+0

StackOverflow'a hoş geldiniz. Lütfen [yardım] sayfasını ziyaret edin ve ayrıca [sor] 'u okuyun. Sorunuz, ev ödevi atamalarının bir dökümü ve "Ne yapacağımı bilmiyorum" dan başka bir sorusu olmayan bir kod. Bu konu dışı kabul edilir. –

+0

meh..Sanırım sadece diziye yapışıp ifadeleri değiştiriyorum. –

cevap

-1

Sana çeteleler aradığınız düşünüyorum. Çok kullanışlı özelliklere sahipler; "Magic Ints" olmayan bir şekilde iyi bir şekilde güvenli olmanın yanı sıra, onları debugging için Strings olarak da oldukça akıcı bir şekilde tedavi edebilirsiniz.