日付8の配置と列挙のタイプ
6.配列 -----------------------배열의 길이 기본---------------------------------
public static void main(String[] args) {
int[] scores = {83,90,87};
int sum =0 ;
// // length 메서드를 이용한 배열의 순회
// for(int i=0; i<scores.length; i++) {
// sum += scores[i];
// } //for
Iterable i;
// int score 부분을 i로 하지말고 유의미하게 적어라!
for(int score : scores) { // 콜론끼리 score:scores 따닥따닥 붙이지 마라
//sum += scores[1] 이렇게 썻었음 ㅠ.
sum += score;
}// enhanced for
System.out.println("총합: " + sum);
double avg= (double) sum/ scores.length; //length를 사용한 정확한
System.out.println("평균: " + avg);
} //main
-参照オブジェクトの配列
(1)基本タイプ
-각 항목에 값을 직접 가지고 있음
(2)参照タイプ(クラス、インタフェース)配列
-각 항목에 객체의 주소를 가짐
------------------------------참조 타입의 배열과 객체의주소----------------------------------
public static void main(String[] args) {
String[] languages = new String[3];
System.out.println(languages);
//[Ljava.lang.String;@4517d9a3 << 객체의 래퍼런스(참조) 객체의 FQCN@논리적인 주소값(16진수)
// FQCN = Fully Qualified Class Name = 모든 클래스에 대한 이름
languages[0] = "언어1";
languages[1] = "언어2";
languages[2] = "언어3";
System.out.println(languages[0].hashCode());
System.out.println(languages[1].hashCode());
System.out.println(languages[2].hashCode());
// Literal = 순수한 값 + Immutable(수정불가능)
languages[0] = "언어1"; // String 내용이 같으면 같은 객체의 주소에서 공유한다.
languages[1] = "언어1";
languages[2] = "언어1";
// 객체의 주소를 부르는 메서드
System.out.println(languages[0].hashCode());
System.out.println(languages[1].hashCode());
System.out.println(languages[2].hashCode());
} // main
-アレイのコピー
(1)配列が作成されると、そのサイズは変更できません
(2)より多くのストレージスペースが必要な場合は、より大きな配列を作成し、配列からアイテム値をコピーします.
-アレイのコピー方法
(1)for文使用
// 기존 배열을 직접 새로운 배열에 일일히 복사하는 예제
public static void main(String[] args) {
int[] oldArr = {1, 2, 3}; //기존 배열
int[] newArr = new int[5]; // 새로운 더 큰 배열
// 기존 배열의 원소를 새로운 배열에 복사
for(int i=0; i<oldArr.length; i++) {
newArr[i] = oldArr[i];
} // classical for
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
(2)System.arrayCopy()メソッドの使用
// 기존 배열을 직접 새로운 배열에 arrayCopy() 메서드를 이용해 복사하는 예제
public static void main(String[] args) {
String[] oldArr = {"JAVA", "array", "copy"}; //기존 배열
String[] newArr = new String[5]; // 새로운 더 큰 배열
System.out.println(Arrays.toString(newArr));
// 기존 배열의 원소를 새로운 배열에 복사
// System.arraycopy(oldArr, offset(기존 배열 시작점), newArr, offset(새 배열 시작점), oldArr.length(개수));
System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
(3)Arraysクラスの使用
// 기존 배열을 직접 새로운 배열에 Arrays 클래스 이용해 복사하는 예제
public static void main(String[] args) {
String[] oldArr = {"JAVA", "array", "copy"}; //기존 배열
String[] newArr = new String[5]; // 새로운 더 큰 배열
System.out.println(Arrays.toString(newArr));
// 기존 배열의 원소를 새로운 배열에 복사
//Arrays.copyOf(기존 배열, 기존배열 0에서 몇까지의 길이 )
newArr =Arrays.copyOf(oldArr,oldArr.length); // 시작점을 정하는건 copyOfRange();
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
7.列挙タイプ
-列挙タイプ
(1)値のみのデータ型
(2)限定値を「列挙定数」(Enumeration Constant)と定義する
-列挙タイプ宣言
(1)ファイル名と同じ名前で宣言(慣例:列挙タイプの頭文字大文字):
(2)列挙定数の定義(有限値)
1)열거 상수 이름은 관례적으로 모두 대문자로 작성
2)다른 단어가 결합된 이름일 경우 관례적으로 밑줄(_)로 연결
------------------------------열거 타입 선언-------------------------------------
//enum 생성
enum Week {
MONDAY, // << 열거 상수(대문자)= 객체
TUESDAY, // 객체
WEDNESDAY, // 객체
THURSDAY, //객체
FRIDAY, //객체
SATURDAY, //객체
SUNDAY //객체
} // end enum
-列挙タイプ変数
(1)列挙型変数宣言
(2)列挙定数値の保存-列挙タイプ変数値を列挙定数の1つとする
(3)列挙タイプ変数が参照タイプ
1)열거 타입 변수는 참조 타입이므로 null 값에 저장 가능하다!
--------------------------열거타입 변수 선언/ 저장/ null 사용--------------------------
public static void main(String[] args) {
Week day = Week.MONDAY;
day = Week.TUESDAY;
System.out.println(day.hashCode());
//switch 문으로 비교가능한 타입은 아래와 같습니다.
// 1.정수 2.문자 3.문자열 4.열거타입
switch(day){//week의 주소를 넣은 객체
case MONDAY: System.out.println("ㅜㅜ"); break; //case문에 열거 상수 넣을때 day선언 따로 안해도됌.
case FRIDAY: System.out.println("^^"); break;
default: System.out.println("--");
}//switch
System.out.println(day == Week.FRIDAY);
System.out.println(day != Week.FRIDAY);
if(day== Week.FRIDAY) {
System.out.println("불금!!!");
} else {
System.out.println("실망!!!");
} //if - else
// null: 현재 객체의 주소를 가지고 있지 않다!! 의미
day = null; // day 변수는 객체의 주소를 들고있지 않다!
// NullPoninterException 오류가, 자바 개발자가 가장 많이 만나는 오류
}//main
今日は学生たちが窮屈だったので、ゆっくりと進度を上げました.しかしそうなればなるほど、生徒たちの燃える意志が感じられる.講師は軽く説明した.講師に会えてよかった!
Reference
この問題について(日付8の配置と列挙のタイプ), 我々は、より多くの情報をここで見つけました
https://velog.io/@koo9b9h/8일차-배열과-열거타입
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
-----------------------배열의 길이 기본---------------------------------
public static void main(String[] args) {
int[] scores = {83,90,87};
int sum =0 ;
// // length 메서드를 이용한 배열의 순회
// for(int i=0; i<scores.length; i++) {
// sum += scores[i];
// } //for
Iterable i;
// int score 부분을 i로 하지말고 유의미하게 적어라!
for(int score : scores) { // 콜론끼리 score:scores 따닥따닥 붙이지 마라
//sum += scores[1] 이렇게 썻었음 ㅠ.
sum += score;
}// enhanced for
System.out.println("총합: " + sum);
double avg= (double) sum/ scores.length; //length를 사용한 정확한
System.out.println("평균: " + avg);
} //main
-각 항목에 값을 직접 가지고 있음
-각 항목에 객체의 주소를 가짐
------------------------------참조 타입의 배열과 객체의주소----------------------------------
public static void main(String[] args) {
String[] languages = new String[3];
System.out.println(languages);
//[Ljava.lang.String;@4517d9a3 << 객체의 래퍼런스(참조) 객체의 FQCN@논리적인 주소값(16진수)
// FQCN = Fully Qualified Class Name = 모든 클래스에 대한 이름
languages[0] = "언어1";
languages[1] = "언어2";
languages[2] = "언어3";
System.out.println(languages[0].hashCode());
System.out.println(languages[1].hashCode());
System.out.println(languages[2].hashCode());
// Literal = 순수한 값 + Immutable(수정불가능)
languages[0] = "언어1"; // String 내용이 같으면 같은 객체의 주소에서 공유한다.
languages[1] = "언어1";
languages[2] = "언어1";
// 객체의 주소를 부르는 메서드
System.out.println(languages[0].hashCode());
System.out.println(languages[1].hashCode());
System.out.println(languages[2].hashCode());
} // main
// 기존 배열을 직접 새로운 배열에 일일히 복사하는 예제
public static void main(String[] args) {
int[] oldArr = {1, 2, 3}; //기존 배열
int[] newArr = new int[5]; // 새로운 더 큰 배열
// 기존 배열의 원소를 새로운 배열에 복사
for(int i=0; i<oldArr.length; i++) {
newArr[i] = oldArr[i];
} // classical for
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
// 기존 배열을 직접 새로운 배열에 arrayCopy() 메서드를 이용해 복사하는 예제
public static void main(String[] args) {
String[] oldArr = {"JAVA", "array", "copy"}; //기존 배열
String[] newArr = new String[5]; // 새로운 더 큰 배열
System.out.println(Arrays.toString(newArr));
// 기존 배열의 원소를 새로운 배열에 복사
// System.arraycopy(oldArr, offset(기존 배열 시작점), newArr, offset(새 배열 시작점), oldArr.length(개수));
System.arraycopy(oldArr, 0, newArr, 0, oldArr.length);
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
// 기존 배열을 직접 새로운 배열에 Arrays 클래스 이용해 복사하는 예제
public static void main(String[] args) {
String[] oldArr = {"JAVA", "array", "copy"}; //기존 배열
String[] newArr = new String[5]; // 새로운 더 큰 배열
System.out.println(Arrays.toString(newArr));
// 기존 배열의 원소를 새로운 배열에 복사
//Arrays.copyOf(기존 배열, 기존배열 0에서 몇까지의 길이 )
newArr =Arrays.copyOf(oldArr,oldArr.length); // 시작점을 정하는건 copyOfRange();
//새로운 배열의 출력
System.out.println(Arrays.toString(newArr));
//
} //main
-列挙タイプ
(1)値のみのデータ型
(2)限定値を「列挙定数」(Enumeration Constant)と定義する
-列挙タイプ宣言
(1)ファイル名と同じ名前で宣言(慣例:列挙タイプの頭文字大文字):
(2)列挙定数の定義(有限値)
1)열거 상수 이름은 관례적으로 모두 대문자로 작성
2)다른 단어가 결합된 이름일 경우 관례적으로 밑줄(_)로 연결
------------------------------열거 타입 선언-------------------------------------
//enum 생성
enum Week {
MONDAY, // << 열거 상수(대문자)= 객체
TUESDAY, // 객체
WEDNESDAY, // 객체
THURSDAY, //객체
FRIDAY, //객체
SATURDAY, //객체
SUNDAY //객체
} // end enum
-列挙タイプ変数
(1)列挙型変数宣言
(2)列挙定数値の保存-列挙タイプ変数値を列挙定数の1つとする
(3)列挙タイプ変数が参照タイプ
1)열거 타입 변수는 참조 타입이므로 null 값에 저장 가능하다!
--------------------------열거타입 변수 선언/ 저장/ null 사용--------------------------
public static void main(String[] args) {
Week day = Week.MONDAY;
day = Week.TUESDAY;
System.out.println(day.hashCode());
//switch 문으로 비교가능한 타입은 아래와 같습니다.
// 1.정수 2.문자 3.문자열 4.열거타입
switch(day){//week의 주소를 넣은 객체
case MONDAY: System.out.println("ㅜㅜ"); break; //case문에 열거 상수 넣을때 day선언 따로 안해도됌.
case FRIDAY: System.out.println("^^"); break;
default: System.out.println("--");
}//switch
System.out.println(day == Week.FRIDAY);
System.out.println(day != Week.FRIDAY);
if(day== Week.FRIDAY) {
System.out.println("불금!!!");
} else {
System.out.println("실망!!!");
} //if - else
// null: 현재 객체의 주소를 가지고 있지 않다!! 의미
day = null; // day 변수는 객체의 주소를 들고있지 않다!
// NullPoninterException 오류가, 자바 개발자가 가장 많이 만나는 오류
}//main
今日は学生たちが窮屈だったので、ゆっくりと進度を上げました.しかしそうなればなるほど、生徒たちの燃える意志が感じられる.講師は軽く説明した.講師に会えてよかった!Reference
この問題について(日付8の配置と列挙のタイプ), 我々は、より多くの情報をここで見つけました https://velog.io/@koo9b9h/8일차-배열과-열거타입テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol