프로그래밍/java13 14. 인터페이스 인터페이스 : 기능들의 목록"무슨 기능을 만들어야할까?" VS "구현부터하기"어떤 기능을 만들어야 할지부터 고민한다. 만들어야 할 기능들을 관련된 것 끼리 묶은 후 이름을 지어준다.기능적 요구사항 & 비기능적 요구사항기능적 : 필요한 메소드비기능적 : 속도, 언어 -> 만족하기 위해서 아키텍처가 필요하다. 설계는 이름을 정하고, 관계를 정하는 것. 어떤 기능이 필요한지 고민하면 이름이 나오고 클래스가 나온다. 구현은 나중 얘기다. 인터페이스는 기능(메소드)이 선언만 되어있다. 기능들의 목록. 인터페이스 작성 문법"인터페이스이름"은 Upper CamelCase로 작성된다.Interface도 확장자 .java 파일로 작성한다.인터페이스의 모든 필드는 public static final이어야 하며, 모든 메소.. 2023. 9. 14. 13. 접근 제한자 접근제한자 클래스 내부 동일 패키지 하위 클래스 그 외 public O O O O pretected O O O X default O O X X private O X X X 메소드 길이 : 한 화면에 다 보일 만큼 너무 길어지면 메소드가 구조적으로 분리가 되어야 하는 거 아닐까? 하는 고민을 해야 한다. 로직이 나누어져야 하지 않나? 그치만 외부에서 호출이 아니라, 내부적으로 호출하고 싶을 때 -> private 2023. 9. 6. 12. final 클래스, 불변객체 String Final 클래스는 상속받지 못한다 String은 final 클래스 이다. 왜? string 객체를 new로 생성하지 않으면 상수처럼 메모리에 올라가 그것을 참조한다..(변하지 않는다) new로 생성하면 항상 새로운 인스턴스가 메모리에 올라가서 그 것을 참조한다. 레퍼런스 타입에서 ==는 같은 것을 참조하느냐? 를 물어보는 것. 스트링은 레퍼런스타입. 따라서 new로 생성하면 인스턴스가 각각만들어지기 때문에 같은 문자라도 다른 인스턴스를 참조하게 된다. 그냥 "~~"로 생성하면 같은 상수(처럼) 를 참조한다. 따라서 new를 안쓰는 게 메모리를 아끼는 것. 단, equals 메소드를 쓰면 문자만 같으면 같다고 나온다. equals는 값이 같냐는 것을 묻기 때문에. string객체에 어떤 메소드를 써도 객.. 2023. 9. 6. 11. java 템플릿 메소드 패턴 추상 클래스를 가장 많이 쓰는 경우 : 템플릿 메소드 패턴when? controller를 만드는데 종류가 여러개인 상황recommend? 사용자는 무조건 초기화 -> 실행 -> 마무리의 순서로 작동시키기 원한다사용자가 특정 메소드에 접근하지 않게 하여 controller 오작동을 막아야 한다 1,2번 : 종류가 여러개지만 작동 순서가 같은 controller의 structure필수 작동 순서 초기화 - 같은 코드 실행 - 다른 코드 마무리 - 같은 코드무조건 위와 같은 순서로 동작되는 controller 템플릿을 만든다 3번 : 사용자의 controller에 대한 메소드 접근을 제한시킨다(최초부모클래스인) controller abstract class의 접근 제한자를 변경시킨다. 메소드를 선언할 때 pu.. 2023. 5. 23. 9. java 생성자 생성자 인스턴스를 생성할 때 사용한다 어떤 값을 가지고 인스턴스가 만들어지게 하고 싶다면 생성자를 사용한다. 클래스 작성시 생성자를 하나도 만들지 않았다면 자동으로 기본 생성자가 생성된다. 기본 생성자는 매개변수를 하나도 받지 않는 생성자를 말한다. public Car(){ System.out.println("자동차가 한 대 생성됩니다"); } 생성자는 메소드와 비슷하다 return type이 없다. 클래스 이름과 같아야 한다. 접근 제한자 다음에 바로 클래스명이 나온다. 매개변수가 0개인 생성자를 기본 생성자라고 한다. 생성자가 하나도 없으면 아무일도 안하는 기본 생성자가 자동으로 컴파일타임에 만들어진다. 이름을 가진 인스턴스가 만들어지고, 이름을 출력하고 싶으면 다음과 같이! private Strin.. 2023. 5. 11. 8. java 상속, 오버라이딩, getter&setter 상속 oo는oo다 상속관계는 is a관계 또는 kind of 관계 라고 말하기도 한다. 상속 = 일반화 + 확장 버스, 레미콘, 트럭을 자동차라고 부른다면 그것은 일반화. 자동차 + 삽 = 포크레인 이라고 하면 확장! 자동차를 확장하는 개념. 부모와 자식관계 부모쪽에 화살표 표시를 해준다. 부모의 기능을 자식도 가진다. 일반화 시킨다 : 자식클래스들을 부모클래스로 부를 수 있는 것을 말한다. (TV는 전자제품이다) 상속은 가장 강한 결합이다. 반드시 써야할 때만 쓰고 되도록 사용하지 않는 게 좋다. (상속은 배우지만 좋지 않다!) 좋은 객체는 응집도는 높고 결합도는 낮아야 하기 때문! 잘못 상속 받으면 타격이 너무 크다. 상속 선언 방법 [접근제한자][abstract final] class 클래스명 ex.. 2023. 4. 10. 이전 1 2 3 다음