Comment utiliser les accesseurs et mutateurs dans une Classe Abstraite

J'ai une classe abstraite Customer. C'est une classe très simple, seulement 5 string variables ainsi que 5 static int variables. Mieux pour montrer ce que je veux dire par là:

Comme un avertissement que j'ai fait le code le plus simple possible, j'ai plus de logique dans ma classe abstraite qui ne concerne pas la question.


Classe Abstraite

public abstract class Customer {
     private String Name, Address, Phone, Email, Company;
     public static final int NAME = 0, ADDRESS = 1, PHONE = 2, EMAIL = 3, COMPANY = 4;

     public Customer(String Name, String Address, String Phone, String Email, String Company) {
         setValues(Name, Address, Phone, Email, Company);
     }

     private void setValues(String Name, String Address, String Phone, String Email, String Company) {
         setName(Name);
         setAddress(Address);
         setPhone(Phone);
         setEmail(Email);
         setCompany(Company);
     }
//declare public getters and setters methods below
}

Ma question est comme suit:

J'ai un class que extends ce abstract class appelé Customer (paquet différent). Si je configure le constructor dans ce class en tant que tel:


Objet De Classe

public class Customer extends Main.Customer {
     private String Name, Address, Phone, Email, Company;

     public Customer(String Name, String Address, String Phone, String Email, String Company) {
         super(Name, Address, Phone, Email, Company);
     }    
}

Ne cet ensemble de mon String variables de ce que je passe par le constructeur? Comme quand je instantiate ce class comme un object, comment pourrais-je être en mesure de 'get' une variable à partir d'elle?

Par exemple: Supposons String1 -String5 sont strings de quelque sorte)

public class Random {
private Customer customer = new Customer(String1, String2, String3, String4, String5);

}

Comment je fais alors appel à l'objet plus tard dans la classe pour retourner un string (d'une seule variable). Comme si mon abstract class n'était pas abstract mais le principal class j'ai été en utilisant à instantiate comme un object, j'aimerais obtenir la variable comme ceci: String name = customer.getName();


TL;DR:

Juste savez pas comment obtenir variables à partir d'un object extending un abstract class.

  • Juste une plaine de lecture dans la classe abstraite ne fonctionne pas?
  • BTW, si vous souhaitez définir un grand nombre de variables quand une classe est construit, vous pouvez envisager d'utiliser une interface fluide ou d'un générateur de modèle.
  • Quel est l'avantage d'avoir deux versions de Customer (qui est source de confusion), il s'agisse de présenter la même information...(mêmes propriétés)
  • Tout d'abord, je me demande comment j'ai "appel" de la lecture/définition d'une classe abstraite lorsqu'il est sous-classe est instanciée comme un objet. Est-ce le même que l'appel de l'objet avec la méthode? Je n'ai pas de getters/setters dans mon sous-classe. En deuxième lieu, comment je code personnellement, je peux suivre ce style beaucoup plus facile. Les Variables déclarées en premier, puis le constructeur, puis les getters/setters, puis toutes les autres méthodes. Juste mes goûts personnels
  • Comment se fait - String name = customer.getName(); ne fonctionne pas? Vous avez indiqué que la obtenir des fonctions dans la classe abstraite publiques: //declare public getters and setters methods below. Votre sous-classe permettrait d'obtenir ces méthodes publiques automatiquement.
  • C'est ce que je demande, c'est tout ce que j'ai à faire, merci!
  • Je ne peux pas instancier une classe abstraite. Je n'ai renommer la classe si, sous-classe, je veux dire.

InformationsquelleAutor Eric | 2014-03-26