산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 - 객체와 클래스

Java는 객체 지향 언어입니다. 객체 지향 기능이 있는 언어로서 Java는 다음과 같은 기본 개념을 지원합니다. -

이 장에서는 클래스와 객체라는 개념을 살펴보겠습니다.

자바의 개체

이제 객체가 무엇인지 자세히 살펴보겠습니다. 현실 세계를 생각해보면 자동차, 개, 사람 등 우리 주변에서 많은 물체를 찾을 수 있습니다. 이 모든 물체에는 상태와 행동이 있습니다.

우리가 개를 고려한다면 그 상태는 이름, 품종, 색상이며 행동은 짖기, 꼬리 흔들기, 뛰기입니다.

소프트웨어 개체를 실제 개체와 비교하면 매우 유사한 특성을 가지고 있습니다.

소프트웨어 개체에는 상태와 동작도 있습니다. 소프트웨어 개체의 상태는 필드에 저장되고 동작은 메서드를 통해 표시됩니다.

따라서 소프트웨어 개발에서 메소드는 객체의 내부 상태에서 작동하며 객체 간 통신은 메소드를 통해 이루어집니다.

자바 클래스

클래스는 개별 개체가 생성되는 청사진입니다.

다음은 수업의 샘플입니다.

예시

public class Dog {
   String breed;
   int age;
   String color;

   void barking() {
   }

   void hungry() {
   }

   void sleeping() {
   }
}

클래스에는 다음 변수 유형이 포함될 수 있습니다.

클래스는 다양한 종류의 메서드 값에 액세스하기 위해 여러 메서드를 가질 수 있습니다. 위의 예에서 barking(), 배고픈(), sleep()은 메소드입니다.

다음은 Java 언어의 클래스를 조사할 때 논의해야 하는 몇 가지 중요한 주제입니다.

생성자

클래스에 대해 논의할 때 가장 중요한 하위 주제 중 하나는 생성자입니다. 모든 클래스에는 생성자가 있습니다. 클래스에 대한 생성자를 명시적으로 작성하지 않으면 Java 컴파일러는 해당 클래스에 대한 기본 생성자를 빌드합니다.

새 객체가 생성될 때마다 적어도 하나의 생성자가 호출됩니다. 생성자의 주요 규칙은 클래스와 이름이 같아야 한다는 것입니다. 클래스는 둘 이상의 생성자를 가질 수 있습니다.

다음은 생성자의 예입니다 -

예시

public class Puppy {
   public Puppy() {
   }

   public Puppy(String name) {
      // This constructor has one parameter, name.
   }
}

Java는 또한 클래스의 인스턴스를 하나만 생성할 수 있는 싱글톤 클래스를 지원합니다.

참고 − 두 가지 다른 유형의 생성자가 있습니다. 다음 장에서 생성자에 대해 자세히 논의할 것입니다.

객체 생성

앞서 언급했듯이 클래스는 객체에 대한 청사진을 제공합니다. 따라서 기본적으로 객체는 클래스에서 생성됩니다. Java에서는 new 키워드를 사용하여 새 객체를 생성합니다.

클래스에서 객체를 생성할 때 세 단계가 있습니다 -

다음은 객체를 생성하는 예입니다 -

예시

라이브 데모
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" );
   }
}

위의 프로그램을 컴파일하고 실행하면 다음 결과가 생성됩니다 -

출력

Passed Name is :tommy

인스턴스 변수 및 메소드 접근

인스턴스 변수 및 메서드는 생성된 개체를 통해 액세스합니다. 인스턴스 변수에 액세스하려면 다음이 정규화된 경로입니다. -

/* First create an object */
ObjectReference = new Constructor();

/* Now call a variable as follows */
ObjectReference.variableName;

/* Now you can call a class method as follows */
ObjectReference.MethodName();

예시

이 예제에서는 클래스의 인스턴스 변수 및 메서드에 액세스하는 방법을 설명합니다.

라이브 데모
public class Puppy {
   int puppyAge;

   public Puppy(String name) {
      // This constructor has one parameter, name.
      System.out.println("Name chosen 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) {
      /* Object creation */
      Puppy myPuppy = new Puppy( "tommy" );

      /* Call class method to set puppy's age */
      myPuppy.setAge( 2 );

      /* Call another class method to get puppy's age */
      myPuppy.getAge( );

      /* You can access instance variable as follows as well */
      System.out.println("Variable Value :" + myPuppy.puppyAge );
   }
}

위의 프로그램을 컴파일하고 실행하면 다음 결과가 생성됩니다 -

출력

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

소스 파일 선언 규칙

이 섹션의 마지막 부분으로 이제 소스 파일 선언 규칙을 살펴보겠습니다. 이 규칙은 클래스를 선언할 때 필수적입니다. 가져오기 명세서 및 패키지 소스 파일의 문.

클래스에는 여러 액세스 수준이 있으며 다양한 유형의 클래스가 있습니다. 추상 클래스, 최종 클래스 등. 이 모든 것에 대해서는 액세스 수정자 장에서 설명합니다.

위에서 언급한 클래스 유형 외에도 Java에는 내부 클래스 및 익명 클래스라는 특수 클래스도 있습니다.

자바 패키지

간단히 말해서 클래스와 인터페이스를 분류하는 방법입니다. Java로 애플리케이션을 개발할 때 수백 개의 클래스와 인터페이스가 작성되므로 이러한 클래스를 분류하는 것은 필수이며 삶을 훨씬 더 쉽게 만들어줍니다.

가져오기 문

Java에서 패키지와 클래스 이름을 포함하는 완전한 이름이 제공되면 컴파일러는 소스 코드 또는 클래스를 쉽게 찾을 수 있습니다. Import 문은 컴파일러가 특정 클래스를 찾을 수 있는 적절한 위치를 제공하는 방법입니다.

예를 들어, 다음 행은 컴파일러에게 java_installation/java/io −

디렉토리에서 사용 가능한 모든 클래스를 로드하도록 요청합니다.
import java.io.*;

간단한 사례 연구

사례 연구를 위해 두 개의 클래스를 만들 것입니다. Employee와 EmployeeTest입니다.

먼저 메모장을 열고 다음 코드를 추가합니다. 이것은 Employee 클래스이고 이 클래스는 공개 클래스임을 기억하십시오. 이제 이 소스 파일을 Employee.java라는 이름으로 저장합니다.

Employee 클래스에는 이름, 나이, 직위 및 급여의 네 가지 인스턴스 변수가 있습니다. 클래스에는 매개변수를 사용하는 명시적으로 정의된 생성자가 하나 있습니다.

예시

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);
   }
}

이 튜토리얼의 앞부분에서 언급했듯이 처리는 메인 메소드에서 시작됩니다. 따라서 이 Employee 클래스를 실행하기 위해서는 메인 메소드와 객체가 생성되어야 합니다. 이러한 작업에 대해 별도의 클래스를 만들 것입니다.

다음은 EmployeeTest입니다. 이 클래스는 Employee 클래스의 두 인스턴스를 만들고 각 개체에 대한 메서드를 호출하여 각 변수에 값을 할당합니다.

다음 코드를 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();
   }
}

이제 두 클래스를 모두 컴파일한 다음 EmployeeTest를 실행합니다. 다음과 같이 결과를 보려면 -

출력

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

다음은 무엇입니까?

다음 세션에서는 Java의 기본 데이터 유형과 Java 애플리케이션을 개발할 때 사용하는 방법에 대해 설명합니다.


java

  1. C# 클래스 및 개체
  2. C++ 클래스 및 개체
  3. C++ friend 함수 및 friend 클래스
  4. 자바 변수와 리터럴
  5. 자바 클래스와 객체
  6. 자바 최종 키워드
  7. 자바 instanceof 연산자
  8. 자바 추상 ​​클래스와 추상 메소드
  9. Java 중첩 및 내부 클래스
  10. 자바 익명 클래스