본문 바로가기

Java31

2022-09-16 자바 package com.example.MyJavaProject; // 문제 : 아래코드가 실행되도록 해주세요. class Main { public static void main(String[] args) { 사람[] 사람들 = new 사람[5]; 사람들[0] = 사람.get사람(); 사람들[1] = 사람.get사람(); 사람들[2] = 사람.get사람(); 사람들[3] = 사람.get사람(); 사람들[4] = 사람.get사람(); for ( int i = 0; i < 사람들.length; i++ ) { 사람들[i].자기소개(); } /* // 출력 저는 1번째 사람입니다. 저는 2번째 사람입니다. 저는 3번째 사람입니다. 저는 4번째 사람입니다. 저는 5번째 사람입니다. */ } } class 사람 { p.. 2022. 9. 16.
2022-09-14 자바 (접근 제어자, getter/setter, 에러처리) 접근제어자 접근제어자에는 종류가 4가지가 있다 4가지로는 1. public 2. default 3. private 4. protected 가 있다. 각각 접근할 수 있는 범위가 다른데 private의 경우에는 선언한 클래스에서만 사용이 가능하다. default와 public의 경우에는 다른 클래스에도 공유가 가능하며 기본적으로 클래스 내에서 접근제어자를 선언하지 않았다고 한다면 default로 선언이 된거라고 생각하면 된다. 하지만 default도 같은 패키지 내에서만 가능하고 다른 패키지의 클래스에서는 사용이 되지 않는다. private는 선언한 클래스,패키지 안에서만 사용이 가능하며 같은 패키지 안의 다른 클래스에게도 공유가 안된다. 아래의 정리된 표를 보면 되며 접근자는 이정도만 알면 된다고 한다... 2022. 9. 14.
2022-09-13 자바 수업 (interface,implements) interface = 자식 클래스에게 강제로 구현을 요구할 수 있음 interface 안에서는 추상메소드만 사용이 가능하다 완전 강제성을 띄는거라고 보면 된다. 그리고 상속인 extends 처럼 해당 클래스에 implements 를 통해서 사용이 가능하다. 이를 사용한게 자바에서는 다중상속이 되지 않기 때문에 이 부분을 해결하기 위해서 interface를 사용하는데 다중상속을 해결하기 위해서 interface를 사용해서 해결을 하지만 일단 extends 같은 상속처럼 메소드 공유를 하기 보다는 어차피 implements를 통해 받은 클래스에게 구현을 직접해줘야한다. class Main { public static void main(String[] args) { 사람 a사람 = new 홍길동(); 차 a차.. 2022. 9. 13.
2022-09-08 자바 package com.example.MyJavaProject; class Main { public static void main(String[] args) { HashMap aMap = new HashMap(); aMap.put(1, "안녕"); aMap.put("A", false); aMap.put("A", true); System.out.println(aMap.get("A")); // 출력 : true } } class HashMap { int size; Object[] keys; Object[] values; HashMap() { int arraySize = 3; size = 0; keys = new Object[arraySize]; values = new Object[arraySize]; } vo.. 2022. 9. 8.
2022-09-07 자바 (제네릭, 해쉬맵(간단)) class Main { public static void main(String[] args) { // 여기서 `저장소` 는 `저장소` 가 생략된 표현이다. 저장소 a정수저장소 = new 저장소(); a정수저장소.set(10); System.out.println(a정수저장소.get() * a정수저장소.get()); // 출력 => 100 저장소 a논리저장소 = new 저장소(); a논리저장소.set(false); if ( a논리저장소.get() ) { System.out.println("참 : " + a논리저장소.get()); } else { System.out.println("거짓 : " + a논리저장소.get()); } } } 위의 문제를 제네릭을 사용해서 푼다고 했을 때 아래와 같이 풀 수 있다. p.. 2022. 9. 7.
2022-09-06 자바 (배열의 길이, 배열 삭제, 제네릭) 배열의 길이를 알아보는 함수 배열의 길이를 알고 싶을 때 사용하는 건 두가지가 있다. 첫번째는 Size 함수를 이용하는 것과 두번째는 lastIndex -1 을 하는 것 두가지가 있는데 이 두가지는 뭘 사용해도 크게 문제 없다. ( 그냥 취향차이..) 보통 lastIndex -1 이라고 쓰는데 만약 한개의 데이터만 넣었다고 가정하면 1 -1 = 0 이라서 결국에는 0이다 즉, 자바에서는 0부터 숫자를 세기 때문에 배열의 길이가 0이 되는거고 0이 뜨면 그냥 1이라고 생각하면 된다 -> 하지만 Size 함수는 그냥 길이를 알아보는거라서 1넣으면 1 뜬다. class Main { public static void main(String[] args) { ArrayList ar = new ArrayList();.. 2022. 9. 6.