본문 바로가기

Java/Java 활용 개념 정리20

<Java> ArrayList 를 객체 지향 관점으로 이해하기. 💡 1. ArrayList 를 살펴보자. ArrayList는 java.util 이라는 Java 에서 제공해주는 API이다. 메소드로는 다음과 같이 있다. ➡add(); 배열에 값을 추가해 주는 메소드. ➡get(); 배열에 데이터를 조회해 값을 반환하는 메소드 ➡size(); 배열에 몇개의 데이터가 담겨있는지 크기를 반환하는 메소드 ArrayList 객체를 생성하면 Object 배열을 담을 공간과 메서드들이 함께 heap영역에 생긴다. ArrayList 안에 Book 이라는 사용자 정의 객체를 넣는다고 해보자. book 이라는 객체를 생성해 메모리에 만들어지고 해당 번지(주소)를 ArrayList 에 담아준다. get을 통해 책의 정보를 조회하고자 할때 빠져나오는 값이 Object 타입으로 나오기 때문에.. 2023. 2. 6.
[Java] package에 대해서(패키지) 💡 1. package( 패키지 ) 패키지 ➡ 기능이 비슷한 클래스를 모아서 관리하기 쉽게 하기 위해 / package 외부에서 접근하는 것을 막을 때 사용한다. 외부에서 package 클래스 내부에 접근하는 방법! ➡ class, full name 을 알아야 한다. ➡ 접근 권한을 알아야 한다.(public) ➡ import 구문을 이해해야 한다. 🔍 클래스의 이름은 2가지이다. ➡ 기본 이름 :OOClass ➡ 패키지를 포함한 이름(class full name): OO. OOO. OOClass 🔍 package 내부에 있는 클래스의 접근권한이 생략되면 기본적으로 default 접근권한을 가진다. default 접근권한 1️⃣ package 내부에 있는 클래스에게는 public 접근권한을 갖는다. 2️.. 2023. 2. 6.
[Java] Object 개념 활용하기! // 다형성 관련 개념 총정리 💡 Object 클래스 Object 클래스는 java 에서 만든 api 이다. 상속 관계에 있는 맨위(최상위)의 클래스가 Object 클래스 이다. Object 클래스를 잘 활용하면 프로그램을 유연하게 만들 수 있다. 모든 클래스의 부모클래스? Object로 모든 클래스 객체에 접근이 가능하다라는 말이다. 단! downcasting을 기본 전제하에 메소드에 접근해야한다. (Object 클래스에 자식 클래스의 메소드가 없으므로.) 클래스를 설계할 때 디폴트로 생략되어있는 3곳이 있다. 1. import java.lang.* 2. 생성자 메소드와 그 내부의 super(); 3. extends Object Object 클래스로 A의 객체를 만들었을 때 obj 자체에 display 라는 메소드가 없으므로 접근하.. 2023. 2. 6.
[Java] 인터페이스의 활용 예시!(feat.JDBC) 💡 1. 인터페이스(규약)와 JDBC의 관계. 인터페이스 자체는 기능이 없지만 자식(하위)클래스를 만나면 기능을 100% 발휘 할 수 있다. 예를 들어 리모콘 하나 있다고 쓸 용도가 없지만 리모컨이 티비를 만나면 용도를 100% 활용 할 수 있는 것처럼. 인터페이스가 가지고 있는 기능(추상메서드)를 자식(하위)클래스는 반드시 재정의 해야만 한다. 그렇기 때문에 하위 클래스의 동작방식을 모르더라도 부모 클래스의 추상메서드로 100% 실행이 가능하다. Java에서 데이터베이스(db)와 연동해서 프로그래밍을 하는 분야를 JDBC Programming 이라고 한다. Java에서 JDBC 프로그래밍을 하기 위해서는 벤더(공급업체)에서 제공하는 클래스를 이용해야 한다. Oracle 과 My-SQL는 각 벤더(공급업.. 2023. 2. 5.
[Java] 인터페이스 활용(100% 다형성 보장!) 💡 1. 인터페이스의 경우 100% 다형성을 보장한다. 인터페이스는 모든 메서드가 추상 메서드로 이루어 져 있다. 구현 메서드를 가지고 있을 수 없다. 반드시 무조건 100% 추상 메서드로 구성해야 한다. 그리고 interface 는 class 형태가 아니다! 그래서 다중상속이 가능하다. 인터페이스는 메서드의 경우는 abstract 키워들 써주고(생략이 가능하다.) 클래스의 경우에는 interface를 써준다. 자식 객체의 경우 extends를 써주는 것이 아닌 implement 를 써준다. 자식 클래스의 경우도 마찬가지로 메서드들은 abstract를 생략해 줘도 된다. ❗ 인터페이스는 구현된 메서드를 가지고 있을 수 없다. 반드시 구현부가 없는 추상 메서드만 가지고 있어야 한다. interface 클래.. 2023. 2. 4.
[Java] 추상클래스(일부 다형성 보장) 💡 1. 추상클래스 활용 다형성이 보장이 되기 위해서는 반드시 자식 클래스에서 재정의(override)를 해줘야 한다. 만약 Dog 와 Cat 클래스에서 eat() 메서드를 재정의 하지 않았다면 Dog d= new Dog(); Cat c= new Cat (); d.eat(); c.eat(); 의 출력은 Animal의 출력인 ? 만 나올것이다. 이러한 다형성을 보장하기 위해서 추상클래스를 사용할 수 있다. ✨추상메서드로 바꿔줄 땐 구현부를 없애줘야 한다. 어떤 클래스에 추상 메서드를 가지고 있으면 클래스 자체에 abstract 키워드를 추가해줘야 한다. 이때 추상 클래스가 된 경우에 그 클래스로 직접 객체를 생성해서 메서드를 사용할 수 없으며 부모 역할만으로 이용이 가능하다. ❔부모클래스가 추상클래스이고 .. 2023. 2. 4.