no image
java 중첩 클래스
## 중첩 클래스와 중첩 인터페이스란? 객체 지향 프로그램에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다.  어떤 클래스는 여러 클래스와관계를 맺지만 어떤 클래스는 특정 클래스와 관계를 맺는다.  클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋으나  특정 클래스와 관계를 맺을 경우에는 관계 클래스를 클래스 내부에 선언하는 것이 좋다.  중첩 클래스(Nested Class) 란 클래스 내부에 선언한 클래스를 말하는데,  중첩 클래스를 사용하면 두 클래스의 맴버들을 서로 쉽게 접근할 수 있다는 장점과  외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다.  다음은 중첩 클래스의 코드 형태를 보여준다. class ClassName {class Neste..
2024.05.02
no image
java Arrays 클래스, Boxing 박싱, Date, Format
## Arrays 클래스  Arrays 클래스는 배열 조작 기능을 가지고 있다.  배열 조작이란 배열의 복사, 항목 정렬, 항목 검색과 같은 기능을 말한다.  단순한 배열 복사는 System.arraycopy() 메소드를 사용할 수 있으나,  Arrays는 추가적으로 항목 정렬, 항목 검색, 항목 비교와 같은 기능을 제공해준다.  다음은 Arrays 클래스가 가지고 있는 메소드들이다.  메소드 이름만 보면 어떤 기능을 제공하는지 쉽게 알 수 있다. Arrays 클래스의 모든 메소드는 정적 (static) 이므로 Arrays 클래스로 바로 사용이 가능하다. # 배열 복사 배열 복사를 위해 사용할 수 있는 메소드는 copyOf( 원본배열, 복사할길이),  copyOfRange (원본배열, 시작 인덱스, 끝 ..
2024.05.01
no image
java String 클래스
## String 클래스 어떤 프로그램이건 문자열은 데이터로서 아주 많이 사용된다.   그렇기 때문에 문자열을 생성하는 방법과 추출, 비교, 찾기, 분리, 변환등을 제공하는 메소드를 잘 익혀두어야 한다. # String 생성자자바의 문자열은 java.lang 패키지의 String 클래스의 인스턴스로 관리된다.  소스상에서 문자열 리터럴은 String 객체로 자동 생성되지만, String 클래스의 다양한 생성자를 이용해서 직접 String 객체를 생성할수도 있다.  String 클래스는 Deprecated(비권장) 된 생성지를 제외하고 약 13개의 생성자를 제공한다  Deprecated는 예전 자바 버전에서는 사용되었으나, 현재 버전과 차후 버전에서는 사용하지 말라는 뜻이다.  어떤 생성자를 이용해서 St..
2024.04.29
no image
java 자바 API 다양한 클래스들
-lang 패키지에 있는 모든 메서드들은 내가 import 하지 않아도 사용이 가능하다.  (워낙 많이 사용하니 기본적으로 import가 되어 있기 때문이다)Date day = new Date(); -여기서 Date 메서드는 Util 패키지에 있기 때문에, import 해서 써야한다.  ## Object 클래스 -클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면   암시적으로 java.lang.Object 클래스를 상속하게 된다.   따라서 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다. -Object는 자바의 최상위 부모 클래스에 해당한다. # 객체 비교(equals()) 다음은 Object의 equals() 메소드이다. public boolean equ..
2024.04.26
no image
java 예외
## 예외와 예외 클래스 -컴파일 에러(Comfile-time error)  : 컴파일할 때 발생하는 에러 -런타임 에러(Runtime error)  : 실행할 때 발생하는 에러 (프로그램 종료) -논리적 에러(Logical error)  : 작성 의도와 다르게 동작 (프로그램이 종료되지 않는다.) -JAVA의 런타임 에러  # 에러 (error)  : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류  # 예외 (exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을  자바에서는 에러 (error) 라고 한다.  에러는JVM 실행에 문제가 생겼다는 것이므로 JVM 위에서 실행되는 프로그램을 아..
2024.04.25
no image
java 인터페이스
추상이랑 상속은 현실에서 잘 써먹진 않은데, 이것을 하기 위해서 여지껏 달려온 것 입니다.    ## 인터페이스의 역할    자바에서 인터페이스(interface)는 객체의 사용 방법을 정의한 타입이다.  인터페이스는 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다.    인터페이스(interface) 는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다.     개발 코드가 인터페이스의 메소드를 호출하변 인터페이스는 객체의 메소드를 호출시킨다.    그렇기 때문에 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 된다.                         개발 코드가 직접 객체의 메소드를 호출하면 간단한데 왜 중간에 인터페이스를 두는지..
2024.04.24
no image
java 다형성
## 타입변환과 다형성(polymorphism) # 다형성-같은 타입이지만 실행 결과가 다양한 객체 대입(이용) 가능한 성질-부모 타입에는 모든 자식 객체가 대입 가능-자식 타입은 부모 타입으로 자동 타입 변환 - 추상 클래스를 사용하는 이유는 표준화이다. (객체를 사용할 때 기준을 잡아주는 것이다)- 클래스 : 설계도, 인터페이스 : 사용 설명서 (사용자가 필요하다) ▶다형성 : 쉬는 시간 되면 잠깐 쉬었다 하겠습니다.- 명령을 하면, 다양하게 행동을 하게 되는 것- 일일이 해야하는 것을 정해주게 되면 너무 시간이 길어진다.- 상위 명령을 하나 툭 던져주면 각자 그 명령을 받아서 개개인의 행동을 정하고 수행한다.※ 도형이니까 너 그냥 그려 (draw) 삼각형은 알아서 삼각형으로, 사각형은 알아서 사각형..
2024.04.23
no image
java 상속
## 상속 개념  상속(Inheritance)이란?-현실 세계: 부모가 자식에게 물려주는 행위-객체 지향 프로그램 : 자식(하위, 파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것자식이 부모를 선택해 물려받음, 상속 대상 : 부모의 필드와 메소드 #상속의 효과-부모 클래스 재사용해 자식 클래스 빨리 개발 가능-반복된 코드 중복 줄임-유지 보수 편리성 제공-객체 다형성 구현 가능 (주목적)  #상속 대상 제한-부모 클래스의 private 접근 갖는 필드와 메소드 제외(protected 상속받은 대상은 접근 가능)-부모 클래스가 다른 패키지에 있을 경우, default 접근 갖는 필드와 메서드도 제외 현실에서 상속(Inheritance)은 부모가 자식에게 물려주는..
2024.04.23
no image
java 클래스(2)
# 인스턴스 멤버와 this-우리가 전에 사용하던 필드와 메서드는 인스턴스 멤버라고 불린다.인스턴스(instance) 멤버란 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드를 말하는데,이들을 각각 인스턴스 필드, 인스턴스 메소드라고 부른다. 우리가 지금까지 작성한 모든 필드와 메소드는 인스턴스 멤버들이었다. 인스턴스 필드와 메소드는 객체에 소속된 멤버이기 때문에 객체 없이는 사용할 수 없다. <b..
2024.04.22