Java #1. クラス(1)
22843 ワード
1.オブジェクト向けプログラミング
オブジェクトを一つ一つプログラム化する方法をオブジェクト向けプログラミング(OOP:Object-Oriented Programming)と呼ぶ.
客体とは、物理的に存在したり抽象的に考えられたりするものの中で、自分の属性も認識できるものを指す.
オブジェクト間のインタラクション手段はメソッドであり,オブジェクトが他のオブジェクトの機能を利用することがメソッド呼び出しである.
int result = Calculator.add(10, 20);
// 리턴한 값을 int 변수에 저장
1-1.) オブジェクトとクラス
Javaの設計図をクラスと呼び、クラスにはオブジェクトを作成するためのフィールドとメソッドが定義されています.クラスで作成されたオブジェクトをクラスのインスタンスと呼びます.
ソースファイルを作成したら、ソースファイルを開き、クラスを宣言します.
public class 클래스이름 {
}
生成されたクラスからオブジェクトを生成するには、new
演算子を使用します.new 클래스();
new
演算子はhip領域にオブジェクトを作成した後、オブジェクトの番号付けアドレスを返します.この番号付けアドレスを参照タイプのクラス変数に保存すると、変数でオブジェクトを使用できます.
클래스 변수 = new 클래스();
<StudentExample.class>
public class Student {
}
public class StudentExample {
pulic static void main(String[] args) {
Student s1 = new Student();
Student s2 = new Student();
}
}
1-2.) クラスの構成メンバー
public class ClassName {
// 필드
int fieldname;
// 생성자
ClassName() { ... }
// 메소드
void method() { ... }
}
2.フィールド
フィールドには、オブジェクトの一意のデータ、オブジェクトが持つべきコンポーネント、およびオブジェクトの現在のステータスデータが格納されます.
2-1.) フィールド宣言
フィールドは、ブロック{}の任意の場所に存在します.타입 필드 [ = 초기값 ];
선언 형태는 변수와 비슷하지만, 필드를 변수라고 부르지는 않는다.
2-2.) フィールドの使用
フィールドの使用は、フィールド値の読み取りと変更を行う操作です.
타입 필드 [ = 초기값 ];
// 클래스 외부에서 필드 사용하기
<Car.class>
public class Car() {
int speed;
}
<CarExample.class>
public class CarExample {
public static void main(String[] args) {
Car myCar = new Car(); // 객체 생성
System.out.println("속도 : " + myCar.speed); // 필드 값 읽기
myCar.speed = 60; // 필드값 변경
System.out.println("수정된 속도 : " + myCar.speed);
3.作成者
new演算子を使用してクラスからオブジェクトを作成すると、オブジェクトの初期化を担当するジェネレータが呼び出されます.
3-1.) デフォルト作成者
クラスでコンストラクション関数の宣言が省略されている場合、コンパイラはブロックの内容が空の基本コンストラクション関数をバイトコードに自動的に追加します.
[public] 클래스 {}
Car myCar = new Car();
3-2.) 作成者の宣言
<생성자 블록>
클래스( 매개변수 선언, ... ) {
// 객체 초기화 코드
}
public clas Car {
// 생성자
Car(String model, String color, int maxSpeed) { *** }
}
クラスに作成者が明示的に宣言されている場合は、宣言の作成者を呼び出してオブジェクトを作成する必要があります.3-3.) 初期化フィールド
public class Korean {
// 필드
String nation = "대한민국";
String name;
String ssn;
// 생성자
public Korean(String n, String s) {
name = n;
ssn = s;
}
}
3-4.) ジェネレータ過負荷
ジェネレータオーバーロードとは、複数のパラメータが異なることを宣言するジェネレータです.
// 생성자 오버로딩
public class Car {
Car() { ... }
Car(String model) { ... }
Car(String model, String color) { ... }
Car(String model, String color, int maxSpeed) { ... }
}
次の場合はジェネレータのオーバーロードではありません.// 생성자 오버로딩
Car(String model, String color) { ... }
Car(String color, String model) { ... }
3-5.) 他のジェネレータを呼び出す:this()
this()は、コンストラクション関数から他のコンストラクション関数を呼び出すために使用されます.
클래스( [매개변수, ...] ) {
this( 매개변수, ... , 값, ... ); // 클래스의 다른 생성자 호출
실행문;
}
4.方法
メソッド宣言は、宣言子と実行ブロックから構成されます.メソッド宣言子はメソッドフラグと呼ばれ、宣言子と実行ブロックには次の要素が含まれます.
리턴타입 메소드이름( [매개변수선언, ...] ) {
실행할 코드를 작성하는 곳 // 메소드 실행 블록
}
4-1.) メソッド宣言
void powerOn() { ... }
double divide(int x, int y) { ... }
値を返さないメソッドは、戻りタイプでvoidで記述され、divide()メソッドの結果が2値である場合は、戻りタイプを使用してdoubleを記述する必要があります.戻り値があるかどうかによって、呼び出し方法が異なります.次の2つの方法で呼び出すことができます.
powerOn();
double result = divide(10, 20);
double divide(int x, int y) { ... }
このように宣言されたdivide()メソッドを呼び出す場合は、int値を2つ指定する必要があります.double result = divide(10, 20);
int sum1(int[] value) { ... }
配列内のアイテム数は呼び出し関数によって決まります.4-2.) メソッド呼び出し
클래스 참조변수 = new 클래스(매개값, ...);
オブジェクトが作成されている場合は、ポイント(.)演算子を使用してメソッドを呼び出すことができます.点(.)演算子は、オブジェクトが所有するフィールドまたはメソッドにアクセスするオブジェクトアクセス演算子です.
참조변수.메소드(매개값, ...); // 리턴값이 없거나, 있어도 리턴값을 받지 않을 경우
타입 변수 = 참조변수.메소드(매개값, ...); // 리턴값이 있고, 리턴값을 받고 싶을 경우
4-3.) メソッドオーバーロード
クラスに複数の同じ名前のメソッドを宣言します.
メソッドのオーバーロードの条件は、パラメータのタイプ、数、順序とは異なる必要があります.
メソッドのオーバーロードが必要なのは、各値が受け入れられ、処理されるためです.
メソッドのリロード時に注意しなければならない点は、パラメータのタイプ、数、順序が同じである場合、パラメータ名が異なる場合、メソッドのリロードとは呼ばれません.
また、戻りタイプが異なり、パラメータが同じ場合にのみ過負荷ではありません.
// 컴파일 에러 발생
int divide(int x, int y) { ... }
double divide(int boonja, int boonma) { ... }
Reference
この問題について(Java #1. クラス(1)), 我々は、より多くの情報をここで見つけました https://velog.io/@gkstjdwns2/Java-.-클래스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol