응용 프로그램을 설계할 떄 가장 중요하게 고려해야 할 항목 중 하나는 데이터 관리. 응용 프로그램에서 필요한 기능을 구현하고, 동작 성능과 안정성을 확보하려면 적절한 자료 구조(Data Structure)를 선택하는 것이 매우 중요. 데이터 조작에 적합한 알고리즘을 선택하는 것 또한 최적의 응용 프로그램 동작을 위해 필수적 1장 리스트, 스택, 큐 선형 자료 구조(Linear Data Structure) 시간 복잡도(Time Complexity) 시간 복잡도는 특정 작업을 수행하는 데 걸리는 시간을 데이터 크기에 대한 수식으로 표현하는 방식입니다. 따라서 시간 복잡도는 데이터 크기가 변경되면 연산 시간이 어떻게 보여줌. 서로 다른 연산의 시간 복잡도는 그 내부에서 데이터를 어떻게 저장하여 사용하는가에 딸..
package(패키지) 기능이 비슷한 클래스를 모아서 관리하기 쉽게 하기 위해 /package 외부에서 접근하는 것을 막을 때 사용 윈도우에서 폴더 기능이랑 비슷하다. 접근하는 방법 class full name을 알아야 한다. 접근권한을 알아야 한다. (public) import 구문을 이해해야 한다. 클래스의 이름은 2가지이다. (.ex) 기본이름 : MyClass 패키지를 포함한 이름( class full name) : kr.tpc.MyClass 💡 package 내부에 있는 클래스의 접근권한이 생략되면 기본적으로 default 접근권한을 가진다. default 접근권한 package 내부에 있는 클래스에게는 public 접근권한 package 외부에 있는 클래스에게는 private 접근권한
객체지향 프로그래밍의 3대 특징 정보은닉(Information Hiding) 상속(Inheritance) 다형성(polymorphism) message polymorphism(다형성) 상속관계에 있는 클래스에서 상위클래스가 동일한 메시지로 하위클래스들을 서로 다르게 동작시키는 객체지향 원리(개념) 다형성 이론의 전제조건 상속관계가 되어야 한다. 객채생성을 upcasting으로 할 것(상위클래스가 하위클래스에게 메시지를 보내야 하므로) 하위클래스가 반드시 재정의(override)해야 한다. (다형성이 보장되기 위해서는) 동적 바인딩을 통해 실현된다. → 실행시점에서 사용될 메서드가 결정되는 바인딩, 프로그램의 속도를 떨어뜨리는 원인 추상클래스와 인터페이스의 공통점 다형성을 보장하기 위해서 등장 객체를 생성..
Object class 모든 클래스의 root 클래스 최상위 클래스(상속관계에서) Object 클래스를 잘 활용하면 프로그램을 유연하게 만들 수 있다. Object class를 이용한 객체 생성 Object obj = new A(); //obj.display X A a = (A)obj; a.display();
인터페이스(규약)와 JDBC의 관계 Java에서 JDBC프로그래밍을 하기위해서는 벤더에서 제공하는 클래스를 이용해야 한다. 벤더에서 제공하는 클래스가 통일되어 있지 않으면 자바 개발자들은 모든 데이터베이스의 동작을 알고 있어야 JDBC프로그래밍이 가능하다는 의미이다. → 사실상 불가능 하다.