
Java est un langage orienté objet. En tant que langage ayant la fonctionnalité orientée objet, Java prend en charge les concepts fondamentaux suivants:
Dans cette partie, nous examinerons les concepts Classes et Objets.
Examinons maintenant profondément ce que sont les objets. Si nous considérons le monde réel, nous pouvons trouver de nombreux objets autour de nous, les voitures, les chiens, les humains, etc. Tous ces objets ont un état et un comportement.
Si nous considérons un chien, son état est: le nom, la race, la couleur et le comportement est : les aboiements, les secousses, les courses.
Si vous comparez l'objet logiciel avec un objet réel, ils ont des caractéristiques très similaires.
Les objets logiciels ont également un état et un comportement. L'état d'un objet logiciel est stocké dans les champs et le comportement est montré via les méthodes.
Ainsi, dans le développement de logiciels, les méthodes fonctionnent sur l'état interne d'un objet et la communication objet-objet se fait via des méthodes.
Une classe est une moule à partir de laquelle des objets individuels sont créés.
Un échantillon d'une classe est donné ci-dessous:
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
Une classe peut contenir l'un des types de variables suivants.
Une classe peut avoir n'importe quel nombre de méthodes pour accéder à la valeur de différents types de méthodes. Dans l'exemple ci-dessus, barking( ), hungry() et sleeping() sont des méthodes.
Voici quelques-uns des sujets importants qui doivent être discutés lors d’utilisation des classes du langage Java.
En discutant des cours, l'un des sous-sujets les plus importants serait les constructeurs. Chaque classe possède un constructeur. Si nous n'écrivons pas explicitement un constructeur pour une classe, le compilateur Java construit un constructeur par défaut pour cette classe.
Chaque fois qu'un nouvel objet est créé, au moins un constructeur sera invoqué. La règle principale des constructeurs est qu'ils devraient avoir le même nom que la classe. Une classe peut avoir plus d'un constructeur.
L'exemple d'un constructeur est donné ci-dessous:
public class Dog{
String breed;
int age;
String color;
public Dog(){
}
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
Java prend également en charge les classes Singleton où vous ne pourrez créer qu'une seule instance d'une classe.
Comme mentionné précédemment, une classe fournit les plans pour les objets. Donc, fondamentalement, un objet est créé à partir d'une classe. En Java, le nouveau mot clé est utilisé pour créer de nouveaux objets.
Il y a trois étapes lors de la création d'un objet d'une classe:
Un exemple de création d'un objet est donné ci-dessous:
public class Puppy{
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public static void main(String []args){
// Following statement would create an object myPuppy
Puppy myPuppy = new Puppy( "tommy" );
}
}
Si nous compilez et exécutez le programme ci-dessus, cela produirait le résultat suivant:
Passed Name is : tommy
Les variables d'instance et les méthodes sont accessibles via des objets créés. Pour accéder à une variable d'instance, le chemin complet doit être le suivant:
/* Créez d'abord un objet */
ObjectReference = new Constructor();
/* Appelez maintenant une variable comme suit */
ObjectReference.variableName;
/* Maintenant, vous pouvez appeler une méthode de classe comme suit */
ObjectReference.MethodName();
Exemple:
Cet exemple explique comment accéder aux variables d'instance et aux méthodes d'une classe
public class Puppy{
int puppyAge;
public Puppy(String name){
//Ce constructeur a un paramètre, un nom.
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){
/* Création d'objet */
Puppy myPuppy = new Puppy( "tommy" );
/* Méthode de classe d'appel pour définir l'âge du chiot */
myPuppy.setAge(2);
/* Appelle une autre méthode de classe pour obtenir l'âge du chiot */
myPuppy.getAge();
/* Vous pouvez également accéder à la variable d'instance comme suit */
System.out.println("Variable Value :" + myPuppy.puppyAge );
}
}
Si nous compilez et exécutez le programme ci-dessus, cela produirait le résultat suivant:
Passed Name is : tommy
Puppy's age is : 2
Variable Value : 2
Comme la dernière partie de cette section, examinons maintenant les règles de déclaration des fichiers sources. Ces règles sont essentielles lors de la déclaration des classes, des instructions d’importation et des instructions de package dans un fichier source.
Les classes ont plusieurs niveaux d'accès et il existe différents types de classes; Classes abstraites, classes finales, etc. J'expliquerai tout cela dans le chapitre Modificateurs d'accès.
Outre les types de classes mentionnés ci-dessus, Java possède également des classes spéciales appelées classes Inner et classes anonymes.
En simple, c'est une façon de catégoriser les classes et les interfaces. Lors du développement d'applications en Java, des centaines de classes et d'interfaces seront écrites, donc la catégorisation de ces classes est nécessaire et rend la vie beaucoup plus facile.
En Java, un nom complet, qui comprend le package et le nom de la classe, est donné alors le compilateur peut facilement localiser le code source ou les classes. L'énoncé d'importation est une façon de donner l'emplacement approprié pour que le compilateur trouve cette classe particulière.
Par exemple, la ligne suivante demande au compilateur de charger toutes les classes disponibles dans le répertoire java_installation / java / io :
import java.io.*;
Pour notre étude de cas, nous créerons deux classes. Ils sont Employee et EmployeeTest.
Ouvrez d'abord le bloc-notes et ajoutez le code suivant. Rappelez-vous que c'est la classe Employee et la classe est une classe publique. Maintenant, enregistrez ce fichier source avec le nom Employee.java.
La classe Employee comporte quatre variables d'instance, le nom, l'âge, la désignation et le salaire. La classe possède un constructeur explicitement défini, qui prend un paramètre.
import java.io.*;
public class Employee{
String name;
int age;
String designation;
double salary;
// This is the constructor of the class Employee
public Employee(String name){
this.name = name;
}
// Assign the age of the Employee to the variable age.
public void empAge(int empAge){
age = empAge;
}
/* Assign the designation to the variable designation.*/
public void empDesignation(String empDesig){
designation = empDesig;
}
/* Assign the salary to the variable salary.*/
public void empSalary(double empSalary){
salary = empSalary;
}
/* Print the Employee details */
public void printEmployee(){
System.out.println("Name:"+ name );
System.out.println("Age:" + age );
System.out.println("Designation:" + designation );
System.out.println("Salary:" + salary);
}
}
Comme mentionné précédemment dans ce cours, le traitement commence à partir de la méthode principale. Par conséquent, dans l'ordre pour que nous puissions exécuter cette classe Employee, il devrait y avoir une méthode principale et des objets devraient être créés. Nous allons créer une classe distincte pour ces tâches.
Voici ci-dessous la classe EmployeeTest, qui crée deux instances de la classe Employee et invoque les méthodes pour chaque objet d'attribuer des valeurs pour chaque variable.
Enregistrez le code suivant dans le fichier EmployeeTest.java
import java.io.*;
public class EmployeeTest{
public static void main(String args[]){
/* Create two objects using constructor */
Employee empOne = new Employee("James Smith");
Employee empTwo = new Employee("Mary Anne");
// Invoking methods for each object created
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();
}
}
Maintenant, compilez les deux classes puis exécutez EmployeeTest pour voir le résultat comme suit:
C:> javac Employee.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