본문 바로가기

반응형

분류 전체보기

Java - StringBuffer 클래스 StringBuffer 클래스 - String 처럼 문자열 배열(char[])을 내부적으로 가지고 있다. - 그러나, String과 달리 내용을 변경할 수 있다.(mutable) - 내부의 배열 길이는 변경 불가, 공간이 부족하면 새로운 배열을 생성해야한다. 공간 부족 > 새로운 배열 생성 > 참조 변경 그래서 적절한 크기로 생성해야한다. 생성자에 크기를 지정하여 생성할 수 있다. 크기를 지정하지 않으면 크기는 16이다. - append()는 지정된 내용을 StringBuffer에 추가 후 참조를 반환한다. StringBuffer sb = new StringBuffer("abc"); StringBuffer sb32 = sb.append("123"); System.out.println(sb); System.. 더보기
Java - String 클래스 String 클래스 - 데이터(char[]) + 메서드(문자열 관련) public final class String implements java.io.Serializable, Comparable{ private char[] value; .... } - 내용을 변경할 수 없는 불변(immutable) 클래스 - 덧셈 연산자를 이용한 문자열 결합은 성능이 떨어짐. 문자열의 결합이나 변경이 잦다면, 내용을 변경가능한 StringBuffer를 사용 문자열 비교 - String str = "abc"; 와 String str = new String("abc"); 비교 String str1 = "abc";// 문자열 리터럴 "abc"의 주소가 str1에 저장됨 String str2 = "abc";// 문자열 리터럴 .. 더보기
Java - Object 클래스 Object 클래스 - 모든 클래스의 최고 조상. 오직 11개의 메서드만을 가지고 있다. - notify(), wait() 등은 쓰레드와 관련된 메서드이다. 메서드 설명 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다. (같으면 true) protected void finalize() 객체가 소멸될 때 가비지 컬랙터에 의해 자동적으로 호출된다. 이 때 수행되어야하는 코드가 있을 때 오버라이딩 한다.(거의 사용 안함) public Class getClass() 객체 자신의 클래스 정보를 담고 있는 Class 인스턴스를 반환한다. public int hashCode() .. 더보기
Java - 오류 / 예외 처리하기 프로그램 오류 - 컴파일 에러 (compile-time error) : 컴파일 할 때 발생하는 에러 - 런타임 에러 (runtime error) : 실행 할 때 발생하는 에러 : 에러(erro) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 > 개발자 처리할 수 없음. : 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 > 개발자가 처리 할 수 있음. - 논리적 에러 (logical error) : 작성 의도와 다르게 동작 예외 클래스의 계층 구조 - Object - Throwable - Error - OutOfMemeryError ... - Exception - IOException / ClassNotFoundException - RuntimeExcepti.. 더보기
Java - 내부 클래스(inner class) / 익명 클래스(anonymous class) 내부 클래스(inner class) - 클래스 안의 클래스 class A { class B { } } 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있다. - 코드의 복잡성을 줄일 수 있다.(캡슐화) A 클래스에서만 쓰는 클래스를 굳이 밖에 둘 필요가 없다. B클래스에서는 객체 생성 없이 A 클래스의 멤버변수에 접근할 수 있다. 종류와 특징 - 내부 클래스의 종류와 유효범위(scope)는 변수와 동일 내부 클래스에서는 static 멤버를 가지려면 내부 클래스가 static 클래스가 되어야 한다. static final 은 내부클래스가 static 클래스가 아니어도 가능 (상수는 가능) static 내부 클래스에는 외부의 멤버변수에 접근할 수 없다. static 멤버/이너클래스 > 인스턴.. 더보기
Java - 인터페이스 인터페이스란 ? - *핵심! 추상 메서드의 집합 - 프로그래밍 관점 구현된 것이 전혀 없는 설계도. 껍데기(모든 멤버가 public) 인터페이스의 조상은 인터페이스만 가능(Object가 최고 조상이 아니다) 다중 상속이 가능(추상메서드는 충돌해도 문제 없음) ** 클래스의 다중상속이 안되는 이유는 ? : 다른 조상에서 같은 이름. 같은 일을 하는 메소드가 있을 수 있어서 안된다 / 그러나 인터페이스는 어차피 구현부만 있기 때문에 문제가 되지 않는다) interface 인터페이스이름 { public static final 타입 상수이름 = 값;// 상수는 가질 수 있다. public abstract 메서드이름(매개변수목록); } interface PlayingCard { public static final.. 더보기
Java - 추상클래스 추상클래스(abstract class) - 미완성 설계도. 미완성 메서드를 갖고 잇는 클래스 - 상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능 - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 abstract class Player { // 추상클래스(미완성 클래스) abstract void play(int pos); // 추상메서드(몸통이 없는 미완성 메서드) abstract void stop(); // 추상메서드 } class AudioPlayer extends Player{ void play(int pos){}; void stop(){}; } // 일부만 구현 // 부모에 있는 stop은 구현하지 않았으므로 추상 클래스로 만들어야 한다. abstract class Abstrac.. 더보기
Java - 객체지향개념 1. 객체지향 개념 - 코드의 재사용성이 높고 유지보수가 용이 > 빠른 변화에 대응이 가능 / 중복 코드 제거 - 객체지향언어 = 프로그래밍 언어 + 객체지향개념(규칙) - 객체지향 프로그래밍(OOP) 1) 캡슐화 2) 상속 3) 추상화 4) 다형성 2. 클래스와 객체 클래스의 정의 : 객체를 정의해 놓은 것 클래스의 용도 : 객체를 생성하는데 사용 객체의 정의 : 실제로 존재하는 것. 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 클래스 객체 제품 설계도 제품 TV 설계도 TV 붕어빵 기계 붕어빵 객체 : HW를 SW화 한 것 TV를 객체화 할때 객체 = 속성(변수) + 기능(메서드) 속성 : 크기, 길이, 높이, 색상, 볼륨, 채널 등 >> 변수 기능 : 켜기, 끄기, .. 더보기

반응형