Java 프로그램 개발 및 학습 클래스 및 객체

Java 프로그램 개발 및 학습 클래스 및 객체

(학습 참고서 : Java2 실습 튜토리얼 제 5 판)

1. 객체 지향 프로그래밍의 세 가지 특성

  1. 캡슐화 : 객체 지향 프로그래밍의 핵심 아이디어는 객체가 이러한 데이터에 대한 자체 데이터와 작업을 합리적이고 효과적으로 캡슐화한다는 것입니다.
  2. 상속 : 하위 클래스는 상위 클래스의 속성과 기능을 상속 할 수 있습니다. 즉, 상위 클래스가 가지고있는 데이터에 대한 데이터와 작업을 상속하는 동시에 하위 클래스의 데이터에 대한 고유 데이터와 작업을 늘릴 수 있습니다. .
  3. 다형성 : 첫 번째는 오퍼레이션 이름의 다형성이며, 오브젝트가 해당 메시지에 따라 특정 동작을 생성 할 수 있도록 다른 메시지가 오퍼레이션에 전달됩니다. 두 번째는 상속과 관련된 다형성이며 동일한 오퍼레이션을 호출 할 수 있습니다. 다른 개체에 의해 다른 행동을 생성합니다.

둘째, 클래스 선언 및 클래스 본문

클래스는 객체 클래스의 상태와 메소드를 캡슐화하는 Java 프로그램의 기본 요소입니다. 클래스는 개체를 정의하는 데 사용되는 템플릿이며 개체를 만들 수 있습니다. 클래스를 사용하여 객체를 생성 할 때이 클래스의 인스턴스가 주어 졌다고도합니다. 클래스는 클래스 선언과 클래스 본문의 두 부분으로 구성됩니다.

clss 类名{
    
    
	类体的内容;
}

그중에는 class 类名클래스 선언이라고합니다.

셋, 클래스 본문의 구성

클래스 본문의 내용에는 멤버 변수와 메서드,
멤버 변수 : 클래스가 생성 한 객체의 속성을 설명하는 데 사용되는 두 가지 가 있습니다. 멤버 변수의 유형은 Java의 모든 데이터 유형이 될 수 있으며, 클래스 본문에서 작성되는 위치에 관계없이 전체 클래스에서 유효합니다. 멤버 변수를 정의 할 때 초기 값을 할당 할 수 있습니다.

방법 : 생성 방법은 클래스 생성에 사용되며 클래스가 생성 한 객체의 초기 상태를 제공하는 데 사용됩니다. 다른 메서드는 클래스에서 만든 개체에 의해 호출되며 개체는 이러한 메서드를 호출하여 멤버 변수를 조작하여 개체의 특정 동작을 반영하는 특정 알고리즘을 형성합니다.

네, 시공 방법

클래스의 일부를 생성 방법이라고하며 생성 방법은 클래스가 생성 한 객체에 적절한 초기 상태를 부여하기 위해 클래스가 객체를 생성 할 때 사용됩니다.

  • 생성 방법은 특수한 방법이며 그 이름은 그것이 속한 클래스의 이름과 정확히 동일해야하며 유형이 없습니다.
  • 클래스에 작성된 생성 메소드가 없으면 Java는 매개 변수없이 기본 생성 메소드를 제공하고 생성 메소드가 작성되면 기본 생성 메소드가 제공되지 않습니다.
  • Java는 클래스에서 여러 구성 메소드를 허용하지만 이러한 구성 메소드의 매개 변수 수 또는 유형은 달라야합니다.

다섯, 객체 생성

객체 생성은 멤버 변수의 선언과 할당의 두 단계로 나뉩니다.
(1) 개체 선언, 형식 :类的名字 对象名字;

(2)
선언 된 객체의 멤버 변수 매칭 선언 된 객체는 데이터를 저장하지 않으며, 객체에 엔터티를 할당해야합니다. 즉, 멤버 변수를 할당해야합니다.
일반적으로 클래스 생성자와 결합 된 new 연산자를 사용하여 선언 된 객체에 멤버 변수를 할당합니다. 클래스에 생성자가 없으면 시스템이 기본 생성자를 호출합니다 (기본 생성자에는 매개 변수가 없으므로 생성자의 이름을 기억하십시오). 클래스 이름과 동일해야 함)

객체 생성 형식 : 객체 对象 = new 构造方法名(即是类名)(构造方法参数);
선언 및 멤버 변수 할당은 한 단계로 완료 할 수 있습니다.

类名 对象名 = new 构造方法名(构造方法参数);

(3) 여러 개의 다른 객체를 생성합니다.
클래스는 new 연산자를 사용하여 여러 개의 다른 객체를 생성 할 수 있습니다. 이러한 객체에는 다른 메모리 공간이 할당되므로 한 객체의 상태를 변경해도 다른 객체의 상태에는 영향을주지 않습니다.

(4) 객체 사용 객체
는 자신의 변수를 조작하여 상태를 변경할 수있을뿐만 아니라 자신을 생성 한 클래스의 메서드를 사용할 수있는 능력도 가지고 있으며 이러한 메서드를 사용하여 특정 동작을 생성 할 수 있습니다.
관통 연산자 "." , 객체는 자신의 변수와 메서드를 호출에 액세스 할 수 있습니다.
개체 속성 : 개체는 자체 변수를 조작합니다.
개체 동작 : 개체가 클래스의 메서드를 호출합니다.

6. 개체 참조 및 개체

클래스로 객체를 생성하면 멤버 변수에 메모리 공간이 할당되며, 이러한 메모리 공간을 객체의 엔티티 또는 변수라고하며, 객체 작업에서 이러한 변수를 사용할 수 있도록 참조가 객체에 저장됩니다. 따라서 두 개체가 동일한 참조를 갖는 경우 동일한 엔티티를 갖습니다.

Java의 가비지 수집 메커니즘 : 운영 환경은 개체가 더 이상 개체에 의해 참조되지 않는지 주기적으로 확인합니다. 이러한 개체가 발견되면 개체가 차지하는 메모리가 해제됩니다.

엔터티가없는 개체를 빈 개체라고하며 빈 개체는 더 이상 메서드를 호출하여 동작을 생성 할 수 없습니다.

일곱, 멤버 변수

클래스 내부에 정의되었지만 메서드 외부에 정의 된 변수를 멤버 변수라고합니다.

(1) 클래스 변수 및 인스턴스 변수
멤버 변수는 생성 된 객체의 속성을 설명하는 데 사용되며 일부 멤버 변수는 인스턴스 변수 라고하며 static 키워드로 수정 된 멤버 변수 의 다른 부분 은 정적 변수 또는 클래스라고합니다. 변수.

모든 객체는 클래스 변수를 공유합니다. 클래스가 객체를 생성하지 않더라도 클래스 변수는 여전히 메모리 공간을 할당합니다.

클래스 변수는 객체뿐만 아니라 클래스 이름을 통해서도 직접 액세스 할 수 있습니다. (그러나 인스턴스 변수는 객체를 통해서만 접근 할 수 있습니다)

(2) 상수 변형 멤버 변수
키워드 최종 정수라고한다. 상수 이름은 대문자를 사용하는 데 사용됩니다.
최종 상수는 메모리 공간을 차지하지 않습니다. 선언 할 때 초기화해야합니다. 객체는 조작 할 수 있지만 변경할 수는 없습니다.

여덟 지역 변수

메서드 본문에 선언 된 변수 및 메서드 매개 변수를 로컬 변수라고합니다.

  • 지역 변수는 메서드 내에서만 유효하며 선언 된 위치에서만 유효합니다.
  • 로컬 변수의 이름이 멤버 변수와 같으면 멤버 변수가 숨겨집니다. 즉, 멤버 변수는이 메서드에서 일시적으로 유효하지 않습니다.
  • 메서드에서 숨겨진 멤버 변수를 사용하려면 this 키워드 를 사용해야합니다.格式:this.变量名
  • 멤버 변수에는 기본값이 있지만 로컬 변수에는 기본값이 없습니다. 로컬 변수에 특정 값이 있는지 확인해야합니다.

9, 매개 변수 전송 값

(1) 기본 데이터 유형의 전송
은 변경되지 않거나 정확도가 감소 된 방향으로 만 가능합니다. 즉, 저 정밀도 매개 변수는 고정밀 변수에 전달할 수 없습니다.

(2) 값별 참조 유형
Java의 참조 데이터에는 배열, 객체 및 인터페이스가 포함됩니다. 참조 된 엔티티가 아니라 변수에 저장된 참조를 전달합니다.

(3) 변수 매개 변수
는 메소드 선언시 매개 변수를 제공하지 않는 목록의 특정 항목에서 마지막 항목까지 매개 변수의 이름과 개수를 의미하지만 이러한 매개 변수의 유형은 정확히 동일해야합니다. 변수 매개 변수는 "..."를 사용하여 여러 매개 변수를 나타내며, 이러한 매개 변수는 동일한 유형이어야하며 마지막 매개 변수는 메소드의 매개 변수 목록에서 마지막 매개 변수 여야합니다 . 예 : void f (int… x)는 처음부터 마지막까지의 매개 변수가 int 유형이지만 연속적으로 나타나는 int 유형의 수가 불확실 함을 나타냅니다. x는 매개 변수 목록에서 변수 매개 변수라고합니다. f. 매개 변수는 "을 나타냅니다.
따라서 향상된 for 성명서가 탄생했습니다.

for(声明循环变量:参数代表){
    
    
	循环体;
}

10. 개체의 조합

클래스는 객체를 자신의 멤버 변수로 사용할 수 있습니다. 이러한 클래스를 사용하여 객체를 생성하면이 객체에 다른 객체가 있으며, 사람들이 Has-A라고 부르는 경우가 많습니다.

객체 a가 객체 b를 결합하면 a는 b를 위임하여 메서드를 호출 할 수 있습니다.

11. 인스턴스 메서드와 클래스 메서드

(1) 인스턴스 방법 : 키워드 정적 수정 없음

数据类型 方法名{
    
    
	方法体内的语句;
}

(2) 클래스 방법 : static 키워드로 수정

static 数据类型 方法名{
    
    
	方法体内的语句;
} 

  • 인스턴스 메서드는이 클래스의 인스턴스 메서드 또는 클래스 메서드를 호출 할 수 있지만 클래스 메서드는이 클래스의 클래스 메서드 만 호출 할 수 있습니다.
  • 인스턴스 메서드는 멤버 변수 (클래스 변수 및 인스턴스 변수)를 조작 할 수 있고 클래스 메서드는 클래스 변수 만 조작 할 수 있습니다.
  • 인스턴스 메서드는 개체를 통해 호출해야하며 클래스 메서드는 클래스 이름 (또는 개체)을 통해 호출 할 수 있습니다.

12. 메서드 오버로딩

메서드 오버로딩은 동작의 다형성을 나타냅니다. 구체적인 의미는 다음과 같습니다. 동일한 이름을 가진 클래스에 여러 메서드가있을 수 있지만 이러한 메서드의 매개 변수는 서로 달라야합니다. 즉, 매개 변수의 수 또는 매개 변수 유형 다르다. 이름이 같고 매개 변수가 다른 이러한 메서드는 다른 동작을 생성 합니다. 그러나 오버로드 된 메서드는 호출 될 때 모호한 호출이 발생하기 쉽습니다.

열세,이 키워드

this 키워드는 인스턴스 메서드 및 생성 메서드에 나타날 수 있지만 클래스 메서드에는 나타날 수 없습니다 .
(1) 시공 방법에 나타남 : 시공 방법에 의해 생성 된 객체를 나타냅니다.
(2) 인스턴스 메서드에 나타납니다 : 메서드를 호출하는 현재 개체를 나타냅니다. 인스턴스 멤버 변수가 인스턴스 메서드에 나타날 때 기본 형식은 this. 멤버 변수이고, 클래스 변수가 인스턴스 메서드에 나타날 때 기본 형식은 클래스 이름. 멤버 변수입니다. 그러나 일반적으로 생략 할 수 있습니다. (특별한 경우 8, 지역 변수 참조)

14. 패키지

패키지의 목적은 서로 다른 Java 소스 파일에있는 두 클래스의 이름이 동일한 상황, 즉 서로 다른 패키지에 속하여 구별되는 상황을 효과적으로 구별하는 것입니다.
(1) 패키지 문 패키지 문은 package 키워드를
통해 선언 됩니다 . package 문은 Java 소스 파일의 첫 번째 문으로 소스 파일에 정의 된 클래스의 패키지 형식이 다음과 같음을 나타냅니다. package 包名;
(2)
패키지 이름으로 메인 클래스 실행 패키지 이름으로 메인 클래스 를 실행하려면, 다음 형식을 사용해야합니다.包名.主类名

15. Import 문

클래스가 동일한 패키지에없는 클래스를 사용하도록합니다.
Java는 클래스 라이브러리를 제공합니다. 클래스 라이브러리의 클래스를 사용하려면 import 문을 사용하여 패키지의 클래스와 인터페이스를 가져와야합니다. Java 문에는 여러 import 문이있을 수 있으며 이는 패키지 문과 소스 파일의 클래스 정의 사이에 작성되어야합니다 .
패키지의 모든 클래스를 가져 오는 경우 대신 와일드 카드 (*)를 사용할 수 있습니다 import 包名.*;
. 패키지의 특정 클래스를 가져 오는 경우 :import 包名.类名;

Java에서 제공하는 공통 패키지 :
java.lang : 모든 기본 언어 클래스를 포함하고 Java 언어의 핵심 클래스 라이브러리입니다
.javax.swing : 추상 창 도구 세트에 이미지, 텍스트 및 창 GUI 클래스를 포함합니다.
java.io : 모든 입력 및 출력 클래스
포함, java.util의 클래스 : 유틸리티 클래스 구성,
java.sql : 클래스를 포함하는 데이터베이스 작업
, java.net : 모든 클래스가 네트워크 기능을 구현합니다.

16. 접근 권한

1) 개인 변수와 개인 방법의 멤버 변수 및 수정 방법
private 키워드는 private 변수와 private 메소드라고합니다. 클래스 A가 전용 변수 및 메서드를 선언하면 클래스 B에서 클래스 A로 생성 된 개체는 A의 전용 변수 및 전용 메서드에 액세스 할 수 없습니다.

(2) 공유 변수와 공유 방법의 수정 멤버 변수와 메소드
키워드 대중은 공유 변수 및 공유 방법이라고합니다. 클래스 A가 공유 변수 및 메서드를 선언하면 클래스 A가있는 클래스 B에 의해 생성 된 객체는 자체 공유 변수 및 메서드에 액세스 할 수 있습니다.

(3) 친근한 변수와 친근한 메소드
public, protected, private 키워드에 의해 수정되지 않는 멤버 변수와 메소드를 친근한 변수와 친근한 메소드라고합니다. 클래스 A의 멤버 변수와 메서드가 친숙하면 클래스 B에 클래스 A가있는 개체를 만듭니다. 클래스 A와 클래스 B가 같은 패키지에 있으면 개체가 친숙한 변수와 메서드에 액세스 할 수 있습니다.

(4) 보호 부재 변수 및 메소드의 멤버 변수와 방법 변성
으로 보호 키워드 보호 부재 변수 및 방법이라고한다. 클래스 A가 보호 된 멤버 변수 및 메서드를 선언하면 클래스 A에서 클래스 B에서 생성 된 객체입니다. 클래스 A와 클래스가 동일한 패키지있는 경우 개체는 보호 된 멤버 변수 및 메서드에 액세스 할 수 있습니다. 패키지에없는 경우 상속을 통해 개체에 액세스 할 수 있습니다.

(5) 퍼블릭 클래스와 친근한 클래스
클래스 선언에서 클래스 앞에 public이 추가되면 이러한 클래스를 퍼블릭 클래스라고합니다. 그렇지 않다면 친절합니다. 공용 클래스는 다른 클래스에 개체를 만들 수 있지만 친숙한 클래스는 동일한 패키지에 있어야합니다.

17. 기본 데이터 유형 캡슐화

java.lang 에서는 기본 데이터 유형의 캡슐화를 실현하기 위해 기본 데이터 유형과 관련된 클래스가 제공됩니다. 그들은:Byte、Interger、Short、Long、Float、Double、Character。

18, 객체 배열

이름에서 알 수 있듯이 객체 배열은 순서대로 결합 된 동일한 유형의 여러 객체 모음입니다. 객체 배열이 선언 된 후의 객체는 선언이 완료된 후의 빈 객체 일뿐입니다. 사용하려면 생성해야합니다. 예 :

Student stu[] = new Student[10];
for(int i=0;i<10;i++) {
    
    
	stu[i] =new Student();
}

추천

출처blog.csdn.net/YCF8746/article/details/112688728