본문 바로가기

프로그래밍

(133)
[JAVA] 추상클래스(Abstract Class) 자바의 정석과 오픈튜토리얼의 강좌를 통해 작성한 내용입니다. 0. 들어가기에 앞서 abstract : 상속해서 사용하도록 강제하는 것위 코드는 다음과 같은 에러를 가진다. abstract로 선언한 추상클래스 A는 반드시 상속을 해야 한다. abstract class A{ public abstract int b(); // 추상메서드 (즉, 로직을 가질 수 없음) B클래스에서 b메서드 구현 public void d(){ System.out.println("business"); } } class B extends A { public int b(){ // 추상클래스 A의 b메서드를 구체적으로 구현. return 1; } } class exercise { public static void main(String[]..
[JAVA] 다형성(polymorphism) JAVA의 정석(2nd Edition) (남궁 성 著) 265p~287p 를 참조해 코드를 작성했으며 개인적인 공부 내용을 적은 것이므로 오류가 있을 수 있습니다.'' 0. 들어가기에 앞서 다형성은 상속과 깊은 관계가 있으므로, 충분히 해당 내용이 뭔지 숙지해야 한다.(링크 : http://whatisthenext.tistory.com/34) 다형성 : 하나의 메소드나 or 하나의 클래스가 다양한 방법으로 동작하는 것을 의미한다. 1. 다형성 객체지향개념에서 "다형성(polymorphism)"이란 여러 가지 형태를 가질 수 있는 능력을 의미한다.자바에서는 이를 한 타입의 참조변수로 여러 타입의 객체를 "참조"할 수 있도록 지원한다. [ 예 제 1 ] A타입의 B인스턴스가 생성이 된 상황.클래스 B를 클래..
[안드로이드] 항목 뷰 ※ 저는 안드로이드 프로그래밍 정복(김상형 著, 한빛미디어) 책을 이용해 공부하고 있으며예제와 코드는 이 책을 통해 공부중임을 밝힙니다.개인적인 공부를 하면서 정리한 형식이기 때문에 심각한 오류가 있을 수 있습니다. 피드백 주시면 정말 감사하겠습니다. ※ 안드로이드 프로그래밍 정복(5689p~567p) 참조 1. 커스텀 항목 뷰 말 그대로 커스터마이징(Customizing) 한다는 뜻이다.내가 원하는 형태로 항목 뷰(list 형태)를 구성할 수 있다.렐러티브 레이아웃(Relative Layout)으로 위와 같은 형태로 꾸며보자. 위와 같은 형태가 하나의 객체를 구성하며, 우리는 리스트(항목) 뷰 상태로 계속 추가해나갈 수 있다. 먼저 두개의 .xml 파일을 만-들어야 한다.하나는 리스트뷰 형태로 보이기 ..
[JAVA] 제어자(modifier) JAVA의 정석(2nd Editionm) (남궁 성 著) 254p~264p 를 참조해 코드를 작성했으며개인적인 공부 내용을 적은 것이므로 오류가 있을 수 있습니다. 0. 들어가기에 앞서 제어자는 " 규제 " 이다. 사회도 커지면 질서가 필요하듯이프로그래밍 코드가 추가되면서 내용이 늘어나면 역시 질서가 필요하다. 1. 제어자(modifier) modify에 대한 뜻을 찾아보면 다음과 같다. '한정어'라는 말이 잘 어울린다. 접근제어자 - public, protected, default, private (오른쪽으로 갈수록 범위가 좁아짐)그 외 - static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스, 멤버변수..
[JAVA} 클래스 패스(Class Path)와 패키지(Package) https://opentutorials.org/course/1223/5527(오픈튜토리얼)과난 정말 JAVA를 공부한 적이 없어요(윤성우 저, 오렌지 미디어)을 참고해 작성했습니다. 0. 서론 클래스 패스를 왜 사용해야 하는 것일까? 먼저 예제를 살펴보자. [1] 새로운 Java Project를 생성한다. [2] myclass라는 새로운 프로젝트를 생성한다. [3] 다음 위와 같이 코드를 작성한다. 이후 컴파일을 시켜보면 [4] 다음과 같이 파일이 새로 만들어진다. [5] AAA클래스와 BBB클래스를 새로 만든 mysubclass 폴더안에 집어넣은 뒤 실행시켜보자. 그러면 아까와 달리 컴파일이 되지 않는다. [6] 위와 같은 에러가 발생한다. 하위폴더를 만들어서 클래스를 옮긴 것 뿐인데 왜 그럴까? 세 ..
[JAVA] 오버라이딩(overriding) JAVA의 정석(2nd Editionm) (남궁 성 著) 238p~246p 를 참조해 코드를 작성했으며개인적인 공부 내용을 적은 것이므로 오류가 있을 수 있습니다. 0. 들어가기에 앞서 오버라이딩은 상속(inheritance)와 관련이 깊은 내용이다. 따라서 공부하기 이전에 상속에 대한 내용을 충분히 숙지하기 바란다. (링크 : http://whatisthenext.tistory.com/19) 공부하면서 객체지향 프로그래밍은 "효율화"를 지향한다고 느꼈다. 효율화에 관점에서 본다면, 왜 상속이 필요한지, 왜 오버라이딩이 필요한지 조금이나마 알 수 있을 것 같다. 1. 오버라이딩(overriding) 조상 클래스로부터 상속받은 메서드(method) 내용을 자식 클래스에서 변경(변수 또는 메서드)하는 것. ..
[JAVA] 상속(Inheritance) JAVA의 정석(2nd Editionm) (남궁 성 著) 222p~237p 를 참조해 코드를 작성했으며 개인적인 공부 내용을 적은 것이므로 오류가 있을 수 있습니다. 0. 들어가기에 앞서 유교 문화의 관점에서 "부모가 자식보다 더 큰 존재다."라고 한다면 왼쪽 그림이 맞을 것이다.하지만 자바에서는 그렇지 않다. Child는 Parent의 재능(인스턴스)을 상속받아 더 많은 활동을 할 수 있다. 만약 부모가 talk, calculate, draw라는 메서드를 가지고 있다면, 고스란히 자식도 그 기능을 사용할 수 있다.따라서, 자손 클래스는 항상 조상 클래스보다 같거나 많은 멤버를 갖게 된다. 조상 클래스 - 부모(parent) 클래스, 상위(super) 클래스, 기반(base)클래스자손 클래스 - 자식(c..
[안드로이드] 리스트뷰(ListView) ※ 저는 안드로이드 프로그래밍 정복(김상형 著, 한빛미디어) 책을 이용해 공부하고 있으며예제와 코드는 이 책을 통해 공부중임을 밝힙니다.개인적인 공부를 하면서 정리한 형식이기 때문에 심각한 오류가 있을 수 있습니다. 피드백 주시면 정말 감사하겠습니다. ※ 안드로이드 프로그래밍 정복(549p~567p) 참조 리스트뷰 형태를 갖고 있다. 레이아웃을 이렇게 준비하고, 아래처럼 코드를 구성한다데이터 준비 - 어댑터 준비 - 어댑터 연결의 과정을 거친다는 것을 알 수 있다. 1. 데이터 준비 단계 ArrayList 객체를 생성하고, 이름 문자열을 추가했다. 2. 어댑터 준비 단계데이터와 리스트뷰를 연결할 "어댑터(Adapter"를 생성한다.또한, 항목(list)들이 모두 문자열이고 배열 형태로 저장되어 있으므로A..