클래스

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    참고 링크 https://okky.kr/article/546389 OKKY | ArrayList를 사용할 때 레퍼런스 변수를 List 타입으로 만드는 이유가 궁금합니다. 안녕하세요. 1년차 새내기 개발자입니다. 회사에서 자바를 사용하는데, 제가 써 본 적이 없어서 처음부터 공부하는 중입니다. List String list new ArrayList String (); 공부하면서 예제를 보니 위와 같은 okky.kr Collection이나 Class를 공부하면서, 객체를 참조할 때 그 클래스가 아닌 인터페이스를 참조하는 경우가 많음을 알게 되었다. 그냥 인스턴스의 클래스를 참조하면 될 것 같은데 왜 인터페이스를 사용하는지 궁금해서 찾아보았다. 형태 변형이 자유롭다 List 인터페이스에 있는 ArrayList..

    [자바/Java] 클래스 다형성(Polymorphism)

    다형성 Animal > Person > Student 학생 객체 → 사람 관점 → 학생 관점 (O) 사람 객체 → 사람 관점 → 학생 관점 (X) Person s2 = new Student(); // 조상 클래스의 타입(Person)으로 자식 클래스 객체(Student)를 참조 //s2.study(); // 오류남.. Person으로 보고 있음 Student st = new Person(); // 참조 불가능 상속 관계에 있을 때 조상 클래스의 타입으로 자식 클래스 객체를 참조할 수 있다. 활용 다른 타입의 객체를 다루는 배열 Person[] persons = new Person[3]; persons[0] = new Person(); persons[1] = new Student(); persons[2] ..

    [자바/Java] 클래스(Class), 상속, 생성자(Constructor), 오버라이딩(Override)

    상속 확장성, 재사용성: 부모의 생성자와 초기화 블록은 상속x 클래스 선언 시 extends 키워드를 명시: 자바는 다중 상속X 관계 부모(상위, Super) 클래스 : Person 자식(하위, Sub) 클래스 : Student 자식 클래스는 부모 클래스의 멤버변수, 메소드를 자신의 것처럼 사용할 수 있다 Object 클래스는 모든 클래스의 조상 클래스 -별도의 extends 선언이 없는 클래스는 extends Object가 생략 super 키워드생성자 호출 순서: 부모 생성자 호출 → 자식(호출된 클래스) 생성자 호출 public class Person { String name; int age; public Person() { System.out.prinln("Person 생성자"); } public ..

    [자바/Java] 싱글톤(Singleton) 패턴, Static

    생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴 public class Manager { private static Manager = manager = new Manager(); private Manager() {} public static Manager getManager() { return manager; } 기본 생성자를 private으로 → 외부에서 인스턴스를 새로 생성할 수 없음 getManager() 메서드는 인스턴스 생성과 상관없이 호출할 수 있어야 하기 때문에 반드시 static 용도/쓰임 여러 클래스에서 동시에 공유할 때 ex. 게임 - score cf. static class와 차이: Singleto..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]