Java

Java 개발 공부 15~17일차 (21.09.06~08)

Pearl_mini 2021. 9. 9. 12:27
728x90

AWT Component

f.setLayout(null);   => //디폴트 레이아웃을 사용하지 않고 크기위치를 개발자가 직접 지정하겠다. 는 뜻

 

 > List (int rows, boolean multipleMode) : rows는 몇 줄 짜리 list인지 지정,, multipleMode는 다중선택 가능여부 지정.

 

CheckBox : bool 값이 true이면 선택된 상태로 생성, false면 선택 해제된 상태로 생성

체크박스에서 네모상자가 아닌 동그라미를 radio box 라고 부른다.

checkbox group으로 묶어지면 중복선택이 안되는 radio box로 생성된다.

 

21.09.07

panel의 디폴트 레이아웃은 flowlayout 이다. 

보통 프레임의 디폴트 레이아웃은 borderlayout이다.

 

dialog 는 조금 중요!

modal 모드를 기억! (창을 필수응답으로 할 것인지 여부를 확인)

 

이틀은 문제풀이랑 시험에 시간을 많이 할애해서 진도는 조금 나갔다.

 


 

21.09.08

기본 API 클래스

API (Application Programming Interface) : 프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음

 

java.lang 패키지

- 자바 프로그램의 기본적인 클래스를 담고 있는 패키지

- import 없이 사용 가능

- String, System, Math, Wrapper 등...

java.util 패키지

- 자바 프로그램 개발의 조미료같은 역할

- Array, Calendar, Ramdom

 

Object 클래스

 - java 모든 클래스의 최상위 부모 클래스다. *** 중요 ***

 - 필드가 없고 메소드 들로 구성되어 있다. 



객체 해시코드 

 - 해시 함수  H(x) = y 

hashCode() 메소드는 같은 객체이면 같은 해시코드가 나온다. 

 

객체 문자 정보 

 - 객체를 문자열로 표현한 값

 - toString() 메소드

 - 모든 객체에는 toString 메서드를 가지고 있다. (Object클래스에 가진 메서드 이기 때문에)

 - PrintOut 하면 자동으로 toString 메소드가 호출된다.

 

얕은 복사의 경우 참조 변수는 주소값을 복사해 가기 때문에, cloned의 참조변수를 변경하면 original의 참조변수도 값이 함께 바뀌어버린다. 따라서 깊은 복사를 해주어야 한다.

 

객체 비교 

- 객체를 비교할 때 비교 기준을 만들어서 사용할 수 있다.

-Object.compare(T a, T b, Comparator<T> c)

  => 두 객체를 비교자(Comparator)로 비교해서 int값을 리턴

<> 안에 T 는 Type을 넣어줌.



동등 비교

equals 와 deepequals (실제 원소 값을 비교)

public class MemberExample {

	public static void main(String[] args) {
		Member obj1 = new Member("blue");
		Member obj2 = obj1;
		Member obj3 = new Member("blue");

		if (obj1.equals(obj2)) {
			System.out.println("obj1과 obj2는 동등합니다.");
		} else {
			System.out.println("obj1과 obj2는 동등하지 않습니다.");
		}

		if (obj1.equals(obj3)) {
			System.out.println("obj1과 obj3는 동등합니다.");
		} else {
			System.out.println("obj1과 obj3는 동등하지 않습니다.");
		}

	}

}

위 예제의 실행 결과는 아래와 같다.

obj1과 obj2는 동등합니다.

obj1과 obj3는 동등하지 않습니다.

 

equals는 객체의 주소값을 비교하게 된다.

그러나 String으로 선언한 경우에는 값을 비교하게 됨. (아래 예제 참고)

public class MemberExample {

	public static void main(String[] args) {
		String obj1 = new String("blue");
		String obj2 = obj1;
		String obj3 = new String("blue");

		if (obj1.equals(obj2)) {
			System.out.println("obj1과 obj2는 동등합니다.");
		} else {
			System.out.println("obj1과 obj2는 동등하지 않습니다.");
		}

		if (obj1.equals(obj3)) {
			System.out.println("obj1과 obj3는 동등합니다.");
		} else {
			System.out.println("obj1과 obj3는 동등하지 않습니다.");
		}

	}

}

결과는 달라진다.

obj1과 obj2는 동등합니다.

obj1과 obj3는 동등합니다.

 


Arrays.deepEquals

Objects.deepEquals 

 

System Class

시스템 소프트웨어(윈도우 등 운영체제) >>  응용 소프트웨어 (게임 등)

자바는 운영체제와 프로그램 사이에 JVM이 존재한다.

시스템 클래스에서는 운영체제의 일부 기능을 이용할 수 있다. (프로그램 종료, 출력, 입력, 현재 시간 읽기 등)

-getProperty() : 시스템 프로퍼티 읽기

- getenv() : 환경변수 읽기 (컴퓨터에서 환경변수 확인 가능) 



Wrapper Class 는 우항과 타입이 달라도 기본자료형 타입을 타입 캐스팅 없이 담을 수 있다.

** 깃허브 업로드방법 리뷰하기 **

 

Class Class

- Class 객체 얻기 ( getClass(), forName() )

- 클래스에 getName를 하면 패키지명+클래스명을 읽어온다.

 

String Class

 String(byte[] bytes, int offset, int length, Charset charset)

  - charAt() : 문자열의 index에 있는 문자를 가져오는 메서드.

 

728x90