본문 바로가기

반응형

자바스프링웹공부(2024)/자바

(21)
2024.09.20. 추상클래스, 추상메서드, final, block * 추상메서드 (Abstract Method) - 메서드 구현부 (=바디{})가 없는 메서드 (미완성 메서드) - 메서드의 동작을 기술하는 구현부가 없는 추상메서드는 실행할 수 있는 코드가 없으므로 외부로부터 호출되면 안됨   => 따라서, 추상메서드를 갖는 클래스는 반드시 추상클래스로 선언되어야 한다! - 메서드 정의 시 선언부의 접근제한자 뒤에 abstract 키워드를 붙여서 정의   => abstract 키워드가 붙은 메서드는 추상메서드 이므로 바디를 가질 수 없다!   (따라서, 메서드 선언부 마지막에 바디{} 대신 세미콜론(;)으로 끝냄) - 서브클래스에서 반드시 오버라이딩 하도록 강제성을 부여해야하는 메서드는 슈퍼클래스에서 추상메서드로 선언하면   서브클래스에가 무조건 오버라이딩 필수!   =..
2024.09.19. 형변환 polymorphism class A {}class B extends A {}class C extends A {}class D extends B {}class E extends B {}class F extends C {}class G extends C {}class H extends F {}...public static void main(String[] args) { A a = (A)new D(); B b = (B)a; // O D d = (D)b; // O // E e = (E)d; // 같은 레벨은 아예 안됨.}  * 동적 바인딩 - 컴파일(번역) 시점에서 실행될 것으로 예상되는 코드와  실제 실행 시점에서 해당 객체의 타입 기준으로 메서드가 달라지는 것.- 동적 바인딩 현상은 메서드에만 일어남. public s..
2024.09.13. ref casting 참조형변환 *  레퍼런스 형변환- 참조형(레퍼런스타입) 끼리의 형변환 (상속 관계에서만 사용 가능) - 참조형 변수를 사용하여 다른 타입의 인스턴스(객체)를 참조하기 위해 변환하는 것. - 업캐스팅(Up casting)과 다운캐스팅(Down casting)으로 분류됨   1. 참조데이터타입에서의 묵시적(자동) 형변환 = 업캐스팅 2. 참조데이터타입에서의 명시적(자동) 형변환 = 다운캐스팅    => 이전에 이미 업캐스팅 된 인스턴스를 다시 다운캐스팅 하는 경우  * 클래스들의 관계 (Has - a, Is - a)1. Has-a (포함관계) - 어떤 객체가 다른 객체에 포함되는 관계 - 대부분의 클래스들의 관계는 Has-a 관계가 적용됨 - 자동차 has a 타이어, 스마트폰 has a 스피커, 영웅 has a 무기..
2024.09.13. super * 상속에서 생성자  - 생성자는 상속되지 않음  - 서브클래스의 객체(인스턴스) 생성시, 먼저 슈퍼클래스의 인스턴스를 생성한 후 서브클래스의 인스턴스가 생성됨   => 이떄, 서브클래스의 생성자 내에서 먼저 자동으로 슈퍼클래스의 기본생성자 호출       (생성자 super() 코드가 생략되어 있을 경우에도 암묵적으로 호출됨)   => 슈퍼클래스의 생성자 내에서 작업이 모두 끝나면 다시 서브클래스의 생성자로 돌아와서 다음 코드들을 실행하게 됨         즉, 슈퍼클래스의 생성자의 코드가 먼저 실행된 후 서브클래스 생성자 코드가 실행됨.  - 슈퍼클래스에 기본생성자가 꼭 있어야함.    만약에 없으면 오버로딩된 형식대로 맞추든지 부모 클래스 기본 생성자를 만들어줘야한다. * 이클립스에서 슈퍼클래스를 ..
2024.09.10. 상속, 오버라이드,접근제한자 * 상속 (Inheritance)  - 이클립스 단축키 : Alt + Shift + S -> V- 슈퍼클래스(부모)의 모든 멤버를 서브클래스(자식)에서 물려받아 선언없이 사용하는 것 - 중복코드 없애려고     => 상속을 받은 서브클래스에서 별도의 선언 및 정의 없어도 슈퍼클래스가 가진 멤버변수나 메서드 등을 자신의 멤버처럼 사용가능     => 상속을 활용하면 코드 중복이 제거되며, 유지보수에 용이해진다.  - 슈퍼클래스 (Super Class) = 부모클래스, 조상클래스 = 상위 클래스   서브 클래스 (Sub Class) = 자식클래스, 자손클래스 = 하위클래스 = 파생클래스  - 서브클래스 정의시 버스클래스명 뒤에 extends 키워드를 사용하고, extends 키워드 뒤에 슈퍼클래스의 이름을 ..
2024.09.09.조건문 반복문 연습 public static void main(String[] args) { /* * Q5) * 반복문과 조건문을 사용하여 다음 모양을 출력하는 프로그램을 만들어 보세요. * * * * *** * ***** * ******* * ***** * *** * * * */ int line = 7; // 총 라인 int star = 1; // 시작하는 별 갯수 int space = 3; for (int i = 0; i
2024.09.05.import, static * import문 - 특정 패키지 또는 패키지 내의 클래스를 현재 클래스 내에 포함시키는 키워드  - 자신과 동일한패키지에 존재하는 클래스가 아닌 다른 패키지의 클래스는 직접 이름만으로 접근이 불가능하며,      반드시 패키지 명을 포함하여 지정해야 함. ex) new java.util.Scanner()     => 원래 클래스명을 지정할 때 [패키지명.클래스명] 형태로 지정해야하지만  패키지명을 생략하고 싶은 경우 해당 패키지명은 import문으로 등록시키면 해당 패키지명을 생략하고 클래스명만으로 사용 가능해짐 ex) new Scanner()  - package 문과 달리 여러번 사용할 수 있으며 package 문 아래쪽 다른 코드들보다 위쪽에 위치해야함.  - 클래스명 지정 시 자동 완성 기능을 사..
204.09.03.비정형인자. 기본형변수와 참조형변수. 패키지 * 비정형인자(=가변인자 , Variable Arguments)- 메서드 파라미터 갯수가 정해져 있지 않을 때  다양한 갯수의 파라미터를 모두 전달받을 수 있는 인자. - 메서드 정의 시 매개변수 데이터타입과 변수명  사이에 ... 기호를 붙여서 표기 - 전달되는 모든데이터는 해당 변수명으로 된 "배열"로 관리디며 0개 이상의 파라미터를 전달할 수 있음 - 메서드 정의 시 가변 인자 타입으로 매개변수를 선언하면  갯수 제한 업이 0개부터 무한대의 파라미터를 한꺼번에 전달 받을 수 있다.   - 가변인자 사용시 주의사항!! 가변인자는 꼭 마지막 파라미터로 사용되어야 한다. 가변인자는 단 한번만 사용가능. 둘중에 하나만 선택해서 사용하여야 한다.( = 마지막 파라미터로 사용되어야 한다는 사유에 포함됨.)cl..

반응형