JAVA/JAVA2 42

[java2] #12 - 빠른(향상된) for문

빠른 for문 (향상된for문, forEach문) for(자료형 변수명 : 컬렉션){ 변수로 컬렉션 내부 요소를 하나씩 꺼내 오면서 반복 } - 단순하게 모든 요소들을 순회할 때 사용하는 것이 좋다. 순서가 중요한 경우 기존 for문을 써야한다. - 배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용한다. - ArrayList 같은 배열 원소 출력에 자주 사용한다. - 간편하고 가독성 좋은 코드 작성이 가능하고 for문 조건식에서의 배열 인덱스 문제를 해결한다 (ArrayIndexOutOfBoundsException 예외를 피할 수 있다) - 단점은 인덱스를 사용하지 못하고 배열이나 ArrayList값을 사용할 수 있지만 수정할 수 없다는 점이 있다. [일차원 배열에서..

JAVA/JAVA2 2022.07.19

[java2] #11 - Object, equals(), hashCode()

- 자바에서 클래스를 선언할 때 extends로 다른 클래스를 상속하지 않으면 java.lang.Object 클래스를 상속한다. 즉 자바의 모든 클래스는 Object클래스의 자식클래스가 되므로 Object는 자바의 최상위 부모 클래스에 해당된다. - Object 클래스는 필드가 없고 메소드로 구성되어있다. 이 메소드들은 모든 클래스들이 Object클래스를 상속하므로, 모든 클래스에서 이용할 수 있다. package day04; public class ObjectTest1 { public static void main(String[] args) { String data1 = "ABC"; String data2 = "ABC"; String data3 = new String("ABC"); String data..

JAVA/JAVA2 2022.07.19

[java2] #10 - Generic(제네릭)

1. Generic(제네릭) - 데이터 형식에 의존하지 않고 하나의 값이 여러 다른 데이터 타입들을 가질 수 있도록 하는 방법이다. - 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정된다. - 제네릭 타입을 두 개 둘 수도 있고 사용자가 정의한 클래스도 타입으로 올 수 있다. Generic의 장점 1. 제네릭을 사용하면 잘못된 타입이 들어올 수 있는것을 컴파일 단계에서 방지할 수 있다 2. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하 고 변환해 줄 필요가 없다. 즉 관리하기 편하다. 2. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아진다. 문법 - Element - Key - Number - Type - Value # Generic Class - 클래스 내부에서 사용..

JAVA/JAVA2 2022.07.16

[java2] #09 - Exception(예외)종류와 처리

Key Error Exception 타입 확인도지 않은 유형으로 분류 Checked 와 Unchecked 로 분류 패키지 java.lang.error java.lang.Exception 복구 불가 가능 발생 컴파일시에 발생할 수 없음 런타임 & 컴파일 시간에 발생 예 OutOfMemoryError, IOError NullPointerExceoption, SqlException Exception Exception 은 사실 Error 와 비슷하게, 문제가 발생하면 어플리케이션이 종료되는 특징을 가지고 있다. 하지만 자바에서는 Exceptiopn Handling (예외처리)을 통해서, 프로그램이 정상 작동할 수 있게 도와주도록 한다. 이 예외처리는 아까 말한 런타입 에러일 때, 예외처리가 가능하다. 일반예외 ..

JAVA/JAVA2 2022.07.14

[java2] #08 - GUI, awt 컨테이너와 컴포넌트

1. GUI - 그래픽 사용자 인터페이스(Graphical User Interface)로 사용자가 편리하게 입출력할 수 있도록 그래픽으로 화면을 구성하고, 마우스나 키보드로 입력받을 수 있도록 지원하는 사용자 인터페이스 2. java GUI (swing,awt) - java GUI는 강력한 GUI컴포넌트를 제공하고 쉬운 GUI프로그래밍을 할 수 있다는 특징이 있다. - GUI 컴포넌트를 이용해 프로그래밍하는데, AWT(java.awt)와 Swing(javax.swing)가 있다. - AWT (Abstract Window Toolkit) 와 Swing이 그림을 그리는 대상은 크게 두 가지이다. 1. 특정 한 가지 기능을 하는 '컴포넌트' (ex. 버튼, checkbox..) 2. 그 컴포넌트들을 담는 그릇..

JAVA/JAVA2 2022.07.14

[java2] #07 - String toString()

이 전에 배운 내용은 위 이미지와 같이 하나의 클래스가 갖고있는 여러가지 특징이나 행동들을 메소드로 정의해 출력할 수 있도록 만들었다 하지만 이러한 특징들이 아닌 클래스를 호출했을 때 문자열을 출력할 수 있는 방법이 있는데 String toString()을 사용하면 된다. netflix 패키지에 추상클래스 Video와 인터페이스 Ani 를 생성한 뒤 프로그램이 애니메이션인지 아닌지 판별해보자. - 모든 클래스에 extends Video, 애니메이션인 클래스엔 implements Ani 를 한다. 클래스가 호출되면 이름을 호출하기 위해 string toString() 메소드를 사용해 "00는" 이라는 문자열을 return 시킨다. - main메소드에 반복문 실행을 위해 각각 클래스를 배열로 생성한다. - ..

JAVA/JAVA2 2022.07.13

[java2] #06 - 인터페이스 (interface)

1. 인터페이스(interface) 란? - 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 역할까지 담당하는 일종의 추상 클래스를 의미한다. - 특정 기능을 개발하는데 있어 공통적인 기능을 명시하고 강제적으로 구현하게끔 하는 역할을 한다. - 추상 클래스는 추상 메소드 뿐만 아니라 생성자, 필드, 일반메소드도 포함할 수 있지만 인터페이스는 오로지 추상메소드와 상수만을 포함할 수 있다. - 자바의 다형성을 극대화하여 개발 코드 수정을 줄이고 프로그램 유지보수성을 높이기위해 인터페이스를 사용한다. 2. 인터페이스의 선언 - 인터페이스를 선언하는 방법은 클래스를 작성하는 방법과 같다. 접근 제어자와 함께 interface 키워드를 사용하면 된다. - abstract 키워드는 ..

JAVA/JAVA2 2022.07.13

[java2] #05 - 추상클래스(abstract class)

1. 추상클래스 (abstract class) - 하나 이상의 추상메소드를 포함하는 클래스로 선언부에 'abstract'라는 키워드를 붙인다. 추상 메소드가 포함되었다면 클래스도 추상 클래스이다. - 추상 클래스는 추상 메소드를 포함하고 객체화 할 수 없다는 점만 제외하고 일반 클래스와 다르지 않으며 생성자, 멤버변수와 일반 메소드도 가질 수 있다. - 추상 클래스 자체로는 클래스로의 역할을 하지 못하며 객체를 생성할 수 없지만 새로운 클래스를 작성하는데 있어서 부모 클래스로서 중요한 역할을 한다. 2. 추상메소드 (abstract method) - 추상 메소드는 선언만 있고 본체는 없는 함수이며 선언부에 'abstract'라는 키워드를 붙인다. - 추상 메소드의 접근 지정자로 private은 사용할 수..

JAVA/JAVA2 2022.07.11

[java2] #04 - 익명클래스(Anonymous class)

1. 익명클래스 : 말 그대로 이름이 없는 클래스이며 클래스 정의와 동시에 객체를 생성할 수 있다. 프로그램에서 재사용 되지 않고 일시적으로 한번만 사용되고 버려지는 객체를 말한다. 주로 Runnable이나 Event Listener 객체를 생성하는데 주로 사용된다. - 기존엔 인스턴스 생성시 Soldier(); 로 끝나지만 익명클래스는 뒤에 {}를 붙여 클래스 정의와 동시에 객체를 생성할 수 있다.

JAVA/JAVA2 2022.07.09

[java2] #03 - 다형성, instanceof 연산자, Casting (Upcasting, Downcasting)

1. 다형성(polymorphism) 이란 - 하나의 객체가 여러 자료형 타입을 가질 수 있는 것을 다형성(polymorphism)이라고 한다. - 부모 클래스의 참조변수로 자식 클래스 타입의 인스턴스를 참조할 수 있다. - 오버라이딩은 상속을 통해 같은 이름의 메소드를 서로 다른 내용으로 구현한다는 점에서 객체 지향의 다형성을 실현한다고 볼 수 있다. 2. instance of 연산자 - 자바에서는 참조변수가 참조하고있는 인스턴스가 어떤 클래스인지 구분하기위해 instance of 염산자를 사용한다. - instanceof는 다음과 같이 사용된다. 참조변수 instance of 클래스명 - 왼쪽 참조변수가 참조하고 있는 인스턴스 타입이 오른쪽의 클래스와 같으면 true를 반환하고, 아니면 false를 ..

JAVA/JAVA2 2022.07.09