백엔드/Java의 정석 33

TIL 정리_13

기본형 값을 String(문자열)으로 변환 int i = 100; String str1 = i +""; String atr2 = String.valueOf(i); String을 기본형 값으로 변환 parseInt() 혹은 valueOf()를 사용 기본형 -> 문자열 문자열 -> 기본형 String String.valueOf(boolean b) String String.valueOf(int i) String String.valueOf(char ch) String String.valueOf(long l) String String.valueOf(float f) String String.valueOf(double d) boolean Boolean.parseBoolean(String s) int Int.parse..

TIL 정리_12

공변 반환타입 (JDK1.5 추가) 오버라이딩할 때 조상 메서드의 반환타입을 자손 클래스의 타입으로 변경을 허용하는 것이다. Point copy = (Point)original.clone(); ---> Point copy= original.clone(); clone()을 이용한 배열 복사 int[] arr = {1,2,3,4,5}; int[] arrClone = arr.clone(); int[] arr = {1,2,3,4,5}; int[] arrClone = new int{arr.length}; System.arraycopy(arr, 0, arrClone, 0, arr.length); 두 코드는 같은 결과를 얻는다 java.util 패키지의 다른 클래스들도 이와 같은 방식으로 복제가 가능하다 (Vecto..

TIL 정리_11

Vector 클래스 – 가변배열 가능(동적으로 크기가 관리되는 객체배열) Object[] - 모든 종류의 객체 저장 가능 Vector 클래스의 주요 메서드 메서드/생성자 설명 Vector() 10개의 객체를 저장할 수 있는 Vector인스턴스를 생성한다 10개 이상의 인스턴스가 저장되면, 자동적으로 크기가 증가된다. boolean add(Object o) Vector에 객체를 추가한다. 추가에 성공하면 결과값으로 true 실패하면 false를 반환한다. boolean remove (Object o) Vector에 저장되어 있는 객체를 제거한다. 제거에 성공하면 true 실패하면 flase를 반환한다. boolean isEmpty() Vector가 비어있는지 검사한다. 비어있으면 true, 비어있지 않으면..

TIL 정리_10

프로그램 오류 컴파일 에러 : 컴파일 했을 때 에러 발생 런타임 에러 : 프로그램을 실행했을 때 에러 발생 논리적 에러 : 의도와 다르게 동작 java 런타입 에러 에러 : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 : 프로그램 코드에 의해서 수습될 수 있는 미약한 오류 예외는 처리할 수 있음 예외처리의 정의와 목적 정의 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것 목적 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것 예외 클래스의 계층구조 Object Throwable Exception Error RuntimeException IOException OutOfMemoryError Exception -IOException, ClassNotFoun..

TIL 정리_09

객체지향 정리 마지막 다형성 여러가지 형태를 가질 수 있는 능력 하나의 배열에 여러종류의 객체 저장 조상 타입의 참조변수로 자손 타입의 객체를 다루는 것 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스의 멤버개수보다 같거나 적어야 한다 참조변수 타입과 인스턴스 타입은 보통 일치하지만, 일치하지 않을수도 있다. 참조변수의 형변환 사용할 수 있는 멤버의 개수를 조절하는 것 조상 - 자손 관계의 참조변수는 서로 형변환이 가능하다 **참조변수가 가리키는 실제 인스턴스가 무엇인지가 중요(멤버 개수 확인) instanceof 연산자 참조변수의 형변환 가능여부 확인에 사용. 가능하면 true반환 형변환 전에 반드시 instanceof로 확인해야 함 주로 조건문에 사용한다 if(참조변수 instanceof 타입(클래..

TIL 정리_08

객체지향 III 상속 (Inheritance) 기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 자손은 조상의 모든 멤버를 상속받는다 (생성자, 초기화 블럭제외) 자손의 변경은 조상에 영향을 미치지 않는다. 자손의 멤버개수는 조상보다 적을 수 없다.(같거나 많다) 포함관계 포함(composite)이란? -클래스의 멤버로 참조변수를 선언하는 것 -작은 단위의 클래스를 만들고, 이들을 조합해서 클래스를 만든다. 클래스 간의 관계 결정하기 1. 상속관계 : ~은 ~이다 (~is a~) 2. 포함관계 : ~은 ~을 가지고 있다 (~has a~) //대부분의 경우는 포함관계이다 Point c = new Point(); 단일 상속 Java는 단일 상속만을..

TIL 정리_07

객체지향 II 참조형 반환타입 객제주소를 정수(int)타입으로 반환 객체주소를 줬기 때문에 객체를 다룰 수 있게 됨 "반환타입이 참조형이라는 것은 메서드가 객체의 주소를 반환한다는 것을 의미한다" 재귀호출 메서드가 자기 자신을 호출해서 일을 시키는 것 void method() { method(); //재귀호출 } 무한반복을 피하기 위해 조건문이 필수적으로 따라다닌다. 클래스 메서드와 인스턴스 메서드 : iv 사용여부로 구분 인스턴스 메서드 인스턴스 생성 후 '참조변수.메서드이름()'으로 호출 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드 메서드 내에서 인스턴스 변수(iv) 사용가능 Static 메서드(클래스 메서드) 객체생성없이 '클래스이름.메서드이름()'으로 호출 인스턴스 멤버(iv, im)..

TIL 정리_06

객체지향 언어 객체지향이론의 기본 개념 : 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 주요특징 1. 코드의 재사용성이 높다 ㄴ새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다 2. 코드의 관리가 용이하다. ㄴ코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다.(규모가 큰 것도 OK) ㄴ제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다 =>코드의 재사용성이 높고 유지보수가 용이하다 클래스 객체를 정의해 놓은 것이자 객체의 설계도 또는 틀이다. 클래스의 정의 : 객체를 정의해 놓은 것..

TIL 정리_05

배열 배열이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 예) int score1, score2, score; //일일이 선언하기 복잡하다 int[] score = new int[5]; //5개의 int 값을 저장할 수 있는 배열을 생성한다. 배열을 다루기 위한 참조변수가 필요하다 //저장공간 : 인덱스 배열의 저장공간은 연속적이다. 배열의 선언과 생성 배열의 선언 : 배열을 다루기 위한 참조변수의 선언 선언방법 선언 예시 타입[] 변수이름; int[] socre; String[] name; 타입 변수이름[]; int score[]; String name[]; 대괄호는 타입 뒤에 붙여도 되고, 변수이름 뒤에 붙여도 된다.(취향) 배열의 생성 : 타입[] 변수이름; //배열을 선언(참조변수 선언..

TIL 정리_04

조건문과 반복문 조건문 : 조건을 만족할때만 {}을 수행 (0~1번) 반복문 : 조건을 만족하는 동안 {}를 수행 (0~n번) 둘을 합해서 제어문 (flow control statement)이라고 한다 if문 조건식이 참(true)일 때, 괄호 {}안의 문장들을 수행한다. if (조건식) { //조건식이 참일 때 수행될 문장을 적는다 } ex) if(score > 60) { System.out.println("합격입니다"); } 조건식의 다양한 예 조건식 조건식이 참일 조건 90