본문 바로가기

나만의 정리26

자바 상속(extends), 추상클래스(abstract), 인터페이스(implements) 개념정리 상속, 추상클래스, 인터페이스는 객체 지향 프로그래밍을 하는데 있어서 중요한 개념이다. 1. 상속 (extends)- 부모 클래스를 extends로 상속받아 자식 클래스에서 사용할 수 있다. (소프트웨어의 재사용성이 높아진다)- 시스템을 설계하다보면 공통된 부분이 생기기 마련인데, 상속을 이용해 비슷한 객체끼리 하나의 묶음으로 묶어주고, 공통된 부분을 뽑아 상위 개념의 부모 클래스를 생성한다. 그리고 이 객체들이 부모 객체를 상속하면 중복이 제거되어 공통된 방식으로 설계할 수 있다.- 오버로딩과 오버라이딩을 사용해 자식 클래스에서 자유자재로 필요한 클래스를 구현할 수 있다.protected : 객체를 캡슐화하기 위해 변수 접근지정자를 private로 설정하면, 이 객체를 상속받은 자식 클래스에서는 접근을.. 2018. 7. 12.
자바 접근 지정자 자바의 접근 지정자는 public, protected, default, private 4종류가 있다. public : 모든 접근 허용, 어떠한 클래스가 접근을 하던 모두 허용protected : 같은 패키지와 상속받은 클래스, 클래스 내부에서만 접근 가능default : 기본 지정자, 특별히 접근 지정자를 명시하지 않을 시 적용 됨, 같은 패키지와 클래스 내부에서만 접근 가능private : 외부에서는 접근이 불가능, 클래스 내부에서만 접근 가능 2018. 7. 11.
StringBuffer를 사용하는 이유 StringBuffer자바에서 String은 불변객체이다. 즉, 한번 생성되면 그 내용을 바꿀 수 없다는 뜻이다. String hello = "Hello"; 라는 문장이 있을 때, 우선 "Hello"라는 문자열 인스턴스를 메모리에 생성한다.그리고 그 레퍼런스를 hello라는 문자열 변수에 대입한다. hello는 "Hello"라는 문자열 자체는 아니고 단지"Hello"라는 문자열 객체를 가리키는 레퍼런스이다. (C의 포인터와 비슷하다) hello += " Mr,HarryPorter";위 문장이 실행되면 hello 객체의 내용은 "Hello Mr,HarryPorter"가 될 것이다.단순히 문자는 축적된다고만 생각하고 있었을 텐데, 내부적으로 보면 hello = new StringBuffer(hello).ap.. 2018. 6. 29.
foreach문 그 동안 foreach문을 단순히 배열을 출력할 때 간단히 쓰기위해 쓰는정도? 로만 생각하고 있었다.그러다 문제를 풀면서 내가 잘못 생각하고 있었다는 것을 알게됐다. 배열 a에 있는 요소를 arr에 하나씩 대입해서 arr이라는 변수를 i번 만큼 사용하는 것이다.정확히 알고 사용하자 2018. 6. 21.
자바에서 nextInt() 후 nextLine()을 할 때 주의해야 할 점 문제를 푸는 도중 자꾸 nextInt로 값을 받았는데 그 값만큼 받지를 못하고 누락되는 경우가 생겨서 검색을 해봤다. 문제가 발생하는 원인은1) nextInt()는 개행문자(\n), 키보드 엔터키를 누르기 바로 전의 숫자를 입력받는다.2) 이후 String을 입력 받기위해 nextLine()을 사용할 경우 개행문자(\n)까지 입력을 받기 때문에 개행문자 한개만 입력을 받고 메소드가 종료되기 때문에 제대로 된 문자를 입력 받지 못한다. (그래서 자꾸 출력결과 한칸이 비어있었다.) 이를 해결하기 위해서는nextInt()를 사용한 후 nextLine()을 삽입해서 개행문자를 삭제해 문제를 해결 할 수 있다. 2018. 6. 21.
StringTokenizer 정리 - StringTokenizerString을 특정 구분자(delimeter)값을 통해 분리하는 함수이다.기본적으로는 split처럼 공백을 기준으로 문자열을 나눈다. - 사용방법StringTokenizer에 nextToken()함수를 쓰면 br.readLine()을 통해 입력받은 값을 공백 단위로 구분하여 nextToken()을 통해 순서대로 호출할 수 있다.기본적으론 공백이 구분자로 사용되지만, StringTokenizer 선언시 2번째 파라미터로 별도로 구분자를 추가할 수도 있다. - 메소드public int countTokens() : 분리한 문자열의 수를 의미.public boolean hasMoreTokens() : 현재 위치 다음 문자열이 존재하면 true를 리턴한다.public String n.. 2018. 6. 19.