Beim Schreiben eines Instanzfeldes mit "privat" Da es vom Getter übersehen werden kann und ein Fehler aufgetreten ist Sei vorsichtig, wenn du es dir zur Gewohnheit machst.
printData
Auch wenn keine Anweisung vorhanden ist, können Sie selbst eine Instanzmethode für die Ausgabe erstellen Schreiben können. Ich möchte den Schreibstil berücksichtigen, der für jeden leicht zu erkennen ist.
Nach dem privaten Schreiben, anstatt in Main.java auszugeben Wenn Sie die Ausgabe mit printData gruppieren, befindet sie sich in derselben Klasse, also anstelle von getName usw. Wenn Sie es mit diesem Namen usw. schreiben, können Sie es präzise schreiben. Denken Sie also daran.
Bisher habe ich in den Übungen zwei Klassen verwendet In der Klasse gab es einige Codeduplikationen. Doppelarbeit sollte vermieden werden, da es schwierig ist, sie zu korrigieren und zu verbessern.
Zu diesem Zeitpunkt kann eine Methode zum Erben des Inhalts einer Klasse angewendet werden. Dies nennt man Vererbung.
Die ursprüngliche Klasse heißt "Superklasse" Die geerbte Klasse wird als "Unterklasse" bezeichnet.
Beim ersten Definieren in einer Unterklasse
Der Name der Klassenunterklasse erweitert den Namen der Oberklasse{...
Schreiben Sie in Form von.
class Vehicle{
...
public void setName(String name){...
}
public void setColor(String color){...
}
}
//Main.In Java
class Main{
public static void main(String[]args){
Car car = new Car();
car.setName("Ferrari");
car.setColor("rot");
...
}
}
Wenn Sie tatsächlich eine Methode aufrufen, schreiben Sie wie oben. (Ein Fall)
Der bisher verwendete Kraftstoff der Fahrzeugklasse gehört nicht zu anderen Klassen Da es sich um ein einzigartiges Produkt handelt, muss es in der Fahrzeugklasse angepasst werden.
class Car extends Vehicle{
private int fuel = 50;
public int getFuel(){
return this.fuel;
}
Wenn Sie es tatsächlich aufrufen, rufen Sie es mit car.getFuel () auf. (Ich erhalte eine Fehlermeldung mit Vehicle.getFuel ();)
super() So rufen Sie einen Superklassenkonstruktor in einer Unterklasse auf [Beispiel 1]
//Super Klasse
class Vehicle{
Vehicle(){
System.out.println("Super Klasse");
}
//Autoklasse
class Car extends Vehicle{
Car(){
super();
}
}
//Hauptklasse
class Main{
public static void main(String[]args){
Car car = new Car();
...
}
}
Oben ist die Ausgabe "Superklasse". [Beispiel 2]
//Definieren Sie zunächst den Konstruktor in der Superklasse.
class Vehicle{
private String name; ...
Vehicle(String name,String color){
this.name = name;
this.color = color;
}
//Rufen Sie den Konstruktor der Klassenklasse / Konstruktor der Superklasse auf
class Car extends Vehicle{
Car(String name,String color){
super(name,color); //Vergessen Sie nicht, das Argument weiterzugeben.
}
}
protected Bei Verwendung von Superklassen und Unterklassen Für Felder, die wie zuvor privat verwenden Der Zugriff von Unterklassen kann nicht so erfolgen, wie er ist. Früher habe ich Getter und Setter verwendet, aber wenn ich [protected] verwende Ermöglicht den Zugriff von Unterklassen und innerhalb der Klasse.
・ Öffentlich → Von überall aus zugänglich ・ Privat → Nur von dieser Klasse aus zugänglich ・ Geschützt → Zugriff von Klasse und Unterklasse
Bisher Unterklassen von Autos und Fahrrädern in der Superklasse der Fahrzeuge Ich habe es zusammengefasst, aber wenn es Methoden mit unterschiedlichen Inhalten gibt (zum Beispiel run class) Verwenden Sie abstrakte Methoden.
class Vehicle{ ..
abstract public void run(int distance);
//Definieren Sie hier eine abstrakte Methode. Ich werde die Bearbeitung danach nicht mehr schreiben!
Danach ist in jeder Unterklasse ein Überschreiben erforderlich.
Ich schreibe eigentlich keine abstrakten Methoden, deshalb habe ich das Gefühl, dass ich nicht viel verstehe. Ich möchte Java einmal umfassend überprüfen und als Seite erstellen. Aus verschiedenen Gründen ist es besser, PHP so schnell wie möglich zu berühren. Lassen Sie uns vorher mit dem Erlernen von PHP fortfahren.
Recommended Posts