Latest web development tutorials

Java-Objekte und Klassen

Java als objektorientierte Sprache. Sie unterstützt die folgenden grundlegenden Konzepte:

  • polymorphism
  • ererben
  • Paket
  • Zusammenfassung
  • Kategorie
  • Objekte
  • Beispiele
  • Weg
  • überladen

In diesem Abschnitt konzentrieren wir uns auf das Konzept der Objekte und Klassen.

  • Objekt: Das Objekt ist eine Instanz einer Klasse (Objekt ist nicht eine Freundin zu finden), gibt es Zustand und das Verhalten. Zum Beispiel ist ein Hund ein Objekt, dessen Zustände sind: Farbe, Name, Rasse, Verhalten: wedelt mit dem Schwanz, genannt, essen und so weiter.
  • Klasse: Die Klasse ist eine Schablone , die das Verhalten einer Klasse von Objekten und Status beschreibt.

Jungen und Mädchen unter dem Wert für die Klasse, und spezifisch für jede Klasse von künstlichen Objekten:


Java-Objekte

Nun lassen Sie uns zu verstehen, was ein Objekt ist. Schauen Sie sich um die reale Welt, finden Sie eine Menge von Objekten um, Autos, Hunde, Menschen und so weiter. Alle diese Objekte haben ihren eigenen Zustand und das Verhalten.

Um den Hund zum Beispiel nehmen, heißt es sind: Name, Rasse, Farbe, Verhalten: genannt, wedelt mit dem Schwanz und lief.

Vergleichen reale Objekte und Software-Objekte sind sehr ähnlich zwischen ihnen.

Software-Objekte haben Zustand und das Verhalten. Staatliche Software-Objekt ist das Verhalten nach der Methode der Ausdruck zuzuschreiben.

In der Softwareentwicklung gegenseitig aufrufen, das Verfahren zum Betreiben der internen Zustand eines Objekts zu ändern, wird die Aufgabe durch das Verfahren erreicht.

Java-Klassen

Klasse kann als Vorlage gesehen werden Java-Objekte zu erstellen.

Durch eine einfache Klassendefinition folgende Java in der Klasse zu verstehen:

public class Dog{
   String breed;
   int age;
   String color;
   void barking(){
   }
   
   void hungry(){
   }
   
   void sleeping(){
   }
}

Eine Klasse kann die folgenden Arten von Variablen enthalten:

  • Lokale Variablen: Variable in einer Methode, Konstruktor oder Anweisung Blockdefinitionen wird eine lokale Variablen genannt. Variablen deklariert, und in dem Verfahren, nach dem Ende des Verfahrens initialisiert wird, werden die Variablen automatisch zerstört.
  • Klassenvariablen: Klassenmitgliedervariablen definiert werden , die Variable außerhalb der Methode Körper. Diese Variable wird erstellt, wenn das Objekt instanziiert wird. Klassenvariablen in den Anweisungsblock Klasse Methoden, Konstruktoren und Methoden einer bestimmten Klasse zugegriffen werden.
  • Klassenvariablen: Klassenvariablen in der Klasse deklariert wird , ein anderes Verfahren als den Körper, sondern muss als statische Typ deklariert werden.

Eine Klasse kann mehrere Methoden, in dem obigen Beispiel haben: Bellen (), hungrig () und Schlafen () sind die Dog-Klasse.


constructor

Jede Klasse hat einen Konstruktor. Wenn Sie nicht explizit die Klasse Konstruktor definieren tun, werden Java-Compiler einen Standardkonstruktor für die Klasse zur Verfügung stellen.

Erstellen eines Objekts, zumindest zu einem Konstruktor aufgerufen werden. Der Name des Konstruktor muss den gleichen Namen wie die Klasse, eine Klasse kann mehrere Konstrukteure haben.

Hier ist ein Beispiel für den Konstruktor:

public class Puppy{
   public Puppy(){
   }

   public Puppy(String name){
      // 这个构造器仅有一个参数:name
   }
}

Objekt erstellen

Die Objekte werden auf der Grundlage der Klasse erstellt. In Java verwenden Sie das Schlüsselwort new ein neues Objekt zu erstellen. Erstellen Sie ein Objekt erfordert die folgenden drei Schritte:

  • Haftungsausschluss: erklären , ein Objekt, einschließlich dem Objektnamen und Objekttyp.
  • Beispiele: das neue Schlüsselwort ein Objekt zu erstellen.
  • Initialisierung: Erstellen Sie ein neues Objekt des Standardkonstruktors mit dem Objekt zu initialisieren aufgerufen.

Hier ist ein Beispiel, ein Objekt zu schaffen:

public class Puppy{
   public Puppy(String name){
      //这个构造器仅有一个参数:name
      System.out.println("Passed Name is :" + name ); 
   }
   public static void main(String []args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

Kompilieren und das obige Programm ausgeführt wird aus den folgenden Ergebnissen drucken:

Passed Name is :tommy

Access-Instanz-Variablen und Methoden

Für den Zugriff auf die Elementvariablen und Mitglied Methoden durch ein Objekt erstellt worden ist, wie folgt:

/* 实例化对象 */
ObjectReference = new Constructor();
/* 访问其中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.MethodName();

Beispiele

Das folgende Beispiel zeigt, wie die Instanzvariablen für den Zugriff auf und Call-Member-Methoden:

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 这个构造器仅有一个参数:name
      System.out.println("Passed Name is :" + name ); 
   }

   public void setAge( int age ){
       puppyAge = age;
   }

   public int getAge( ){
       System.out.println("Puppy's age is :" + puppyAge ); 
       return puppyAge;
   }

   public static void main(String []args){
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("Variable Value :" + myPuppy.puppyAge ); 
   }
}

Kompilieren und Ausführen der obigen Programm folgende Ergebnisse erzielt:

Passed Name is :tommy
Puppy's age is :2
Variable Value :2

Die Quelldatei Deklarationsvorschriften

Im letzten Teil dieses Abschnitts werden wir lernen, die Regeln für die Quelldatei deklarieren. Wenn Sie mehrere Klassen in einer Quelldatei zu definieren, und es gibt Import-Anweisungen und Paketanweisung, zahlen diese Regeln besondere Aufmerksamkeit.

  • Eine Quelldatei kann nur eine öffentliche Klasse
  • Eine Quelle-Datei kann mehrere nicht-öffentliche Klassen
  • Die Quelldatei und Klassennamen public class sollte konsistent sein. Zum Beispiel: Klassenname in der Quelldatei public class ist Angestellter, dann sollte die Quelldatei Employee.java benannt werden.
  • Wenn eine Klasse in einem Paket definiert ist, muss der Paketanweisung die erste Zeile der Quelldatei sein.
  • Wenn die Quelldatei die Import-Anweisung enthält, sollte die Aussage zwischen den Paket- und Klassendefinitionen platziert werden. Wenn kein Paket-Anweisung ist, Import-Anweisungen sollten vor allem in der Quelldatei sein.
  • Importpaket Aussagen und Erklärungen aller in der Quelldatei definierten Klassen gelten. In der gleichen Quelldatei nicht auf die verschiedenen Klassen von verschiedenen Paketen Aussage.

Es gibt mehrere Ebenen von Zugriffsklasse und die Klasse kann in verschiedene Typen eingeteilt werden: abstrakte Klassen und Abschlussklassen und dergleichen. Diese werden in der Access Control Abschnitt beschrieben.

Zusätzlich zu den oben genannten Typen, Java gibt es einige spezielle Kategorien, wie zum Beispiel: innere Klassen, anonyme Klassen.


Java-Paket

Paket ist vor allem zu kategorisieren Klassen und Schnittstellen verwendet. Wenn Sie ein Java-Programm könnten Hunderte von Klassen entwickeln schreiben, so ist es notwendig, Klassen und Schnittstellen zu klassifizieren.

Import Statement

In Java kann, wenn es voll qualifizierten Namen, einschließlich der Paketnamen, Klassennamen, dann kann der Java-Compiler einfach den Quellcode oder Kategorie suchen. Import-Anweisung wird verwendet, um einen vernünftigen Weg zu schaffen, so dass der Compiler eine Klasse zu finden.

Zum Beispiel lädt der folgende Befehlszeilen-Compiler-Befehl alle Klassen java_installation / java / io Pfad

import java.io.*;

Ein einfaches Beispiel

In diesem Beispiel erstellen wir zwei Klassen: Mitarbeiter und EmployeeTest.

Öffnen Sie zunächst einen Texteditor den folgenden Code in sie einzufügen. Hinweis: Speichern Sie die Datei als Employee.java.

Employee-Klasse verfügt über vier Membervariablen: Name, Alter, Bezeichnung und Gehalt. Klasse explizit einen Konstruktor deklarieren, die nur ein Parameter ist.

import java.io.*;
public class Employee{
   String name;
   int age;
   String designation;
   double salary;
   // Employee 类的构造器
   public Employee(String name){
      this.name = name;
   }
   // 设置age的值
   public void empAge(int empAge){
      age =  empAge;
   }
   /* 设置designation的值*/
   public void empDesignation(String empDesig){
      designation = empDesig;
   }
   /* 设置salary的值*/
   public void empSalary(double empSalary){
      salary = empSalary;
   }
   /* 打印信息 */
   public void printEmployee(){
      System.out.println("Name:"+ name );
      System.out.println("Age:" + age );
      System.out.println("Designation:" + designation );
      System.out.println("Salary:" + salary);
   }
}

Die Programmausführung beginnt mit dem Hauptverfahren. Um das Programm auszuführen, und muss eine Hauptmethode enthält eine Instanz eines Objekts erstellt.

Hier sind EmployeeTest Klasse instanziert werden zwei Instanzen der Klasse Employee, und rufen Sie die Methode den Wert der Variablen zu setzen.

Der folgende Code wird in EmployeeTest.java-Datei gespeichert.

import java.io.*;
public class EmployeeTest{

   public static void main(String args[]){
      /* 使用构造器创建两个对象 */
      Employee empOne = new Employee("James Smith");
      Employee empTwo = new Employee("Mary Anne");

      // 调用这两个对象的成员方法
      empOne.empAge(26);
      empOne.empDesignation("Senior Software Engineer");
      empOne.empSalary(1000);
      empOne.printEmployee();

      empTwo.empAge(21);
      empTwo.empDesignation("Software Engineer");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}

Kompilieren Sie beide Dateien und führen EmployeeTest Klasse, können Sie die folgenden Ergebnisse sehen:

C :> javac Employee.java
C :> vi EmployeeTest.java
C :> javac  EmployeeTest.java
C :> java EmployeeTest
Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0