[Javaの定式]Chapter 6オブジェクト向けプログラミング(09-10)
Chapter 6. オブジェクト向けプログラミング
09.クラスの定義(1)-データと関数の結合
データストレージ形式プログラミング言語におけるデータ処理の発展過程
関数は主にデータを処理するので、多くの場合、データと関数の関係は非常に密接です.
Javaなどのオブジェクト向け言語では、相互に関連付けられた変数と関数を共通に処理するために、関数と変数(データ)をクラスに定義できます.
クラスは、相互に関連する変数と、それらに対して操作を実行する関数を定義します.
C言語では文字列は文字の配列であり、Javaでは文字列はStringというクラスである.
▶文字列を単純な文字配列ではなくクラスとして定義するのは、文字列と文字列を扱うために必要な関数を組み合わせるためです
public final class String implements java.io.Serializable, Comparable {
private char[] value; //문자열을 저장하기 위한 공간
public String replace(char oldChar, char newChar) {
...
char[] val = value; //같은 클래스 내의 변수를 사용해서 작업
...
}
...
10.クラスの定義(2)-カスタムタイプ
사용자정의 타입(user-defined type)
:プログラミング言語で提供される基本資料型(primitive type)に加え、プログラマは相互に関連する変数を組み合わせて、新しい変数を1つのタイプで追加▶ 시간을 표현하기 위해 3개의 변수를 선언
int hour; //시간을 표현하기 위한 변수
int minute; //분을 표현하기 위한 변수
float second; //초를 표현하기 위한 변수, 1/100초 까지 표현하기 위해 float사용
▶만일 3개의 시간을 다뤄야 한다면 아래와 같음
int hour1, hour2, hour3;
int minute1, minute2, minute2;
float second1, second2, second3;
▶다뤄야 하는 시간의 개수가 늘어날 때마다 시,분,초를 위한 변수도 추가해줘야 하는데
데이터의 개수가 많으면 배열로 처리
int[] hour = new int[3];
int[] minute = new int[3];
float[] second = new float[3];
→ 시간 데이터의 개수가 늘어나더라도 배열의 크기만 변경해주면 되므로,
변수를 매번 새로 선언해야하는 불편함은 사라짐
▶하나의 시간을 구성하는 시, 분 ,초가 서로 분리되어 있기 때문에 프로그램 수행과정에서
시,분,초가 따로 뒤섞여 올바르지 않은 데이터가 될 가능성이 있기때문에
시, 분, 초를 하나로 묶는 사용자정의 타입, 즉 클래스를 정의하여 사용
class Time {
int hour;
int minute;
float second;
}
🍉 非オブジェクトコードとオブジェクトコード
<비객체지향적 코드>
int hour1, hour1, hour3;
int minute1, minute2, minute3;
float second1, second2, second3;
int[] hour = new int[3];
int[] minute = new int[3];
float[] second = new float[3];
<객체지향적 코드>
Time t1 = new Time();
Time t2 = new Time();
time t3 = new Time();
Time[] t = new Time[3];
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();
제어자
と메서드
条件コードを簡単に反映できる<조건반영하여 Time클래스 작성>
public class Time {
private int hour;
private int minute;
private float second;
//hour의 값을 변경하기 위한 메서드. 지정한 값이 0보다 작거나 23보다 크면
//즉, 유효한 값이 아니면 변경하지 않고 메서드를 종료(return)함
public void setHour(int h) {
if(h<0 || h>23) return;
hour = h; //지정된 값(h)이 유효한 경우에만 hour를 변경
}
...
}
Reference
この問題について([Javaの定式]Chapter 6オブジェクト向けプログラミング(09-10)), 我々は、より多くの情報をここで見つけました https://velog.io/@wendy1126/Java의-정석Chapter6.객체지향-프로그래밍0910テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol