전체 글(254)
-
231219 JAVA AbstractEx(추상화)
package abstractEx; //추상화 /* * 자바에서는 추상화라는 개념이 있습니다. * * 추상 : 현실화 되어질 필요가 없는, 인스턴스화 되어질 필요가 없는 클래스 * * ---> 인스턴스화 할 필요가 없는 성질의 클래스 * * 자바에서는 객체지향을 통해 프로그램이 실행되는데 * 이 추상이라는 개념을 클래스에 적용시키면 * 자신의 인스턴스를 발생할 수 없는 형태로 지정됩니다. * * 이렇게 인스턴스화 할 필요가 없지만 상속 개념에서 중요한 위치를 가지는 * 클래스를 보통 추상 클래스로 정의합니다. * * * 선언규칙 * 1. 클래스에 정의된 메소드 중 추상 메소드가 하나라도 있다면 해당 클래시는 무조건 추상 클래스가 됩니다. * 추상 클래스는 class앞에 absract라는 키워드를 리턴 타..
2023.12.20 -
231219 JAVA PolyMorphism(다형성)
package polymorphism; //다형성 ploymorphism /* * 다형성은 동적 바인딩이 지원되는 프로그램 언어에서 사용할 수 있습니다. * * 런타임대 최종 타입이 결정됩니다. * * 하나의 객체가 여러가지 형태를 가질 수 있는 것 * * 자바의 다형성은 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는것. * 상위 클래스 타입의 참조변수를 통해 하위 클래스의 객체를 참조할 수 있도록 * 허용하여 상위 클래스가 동일한 메세지로 하위 클래스들이 서로 다른 동작을 할 수 있게 하는 것. * * 다형성을 활용하면 부모클래스가 자식 클래스의 동작 방식을 알 수 없어도 * 오버라이딩을 통해 자식 클래스에 접근할 수 있다. * * 장점 * 유지보수 : 여러 객체를 하나의 타입으..
2023.12.20 -
231219 JAVA Override(오버라이드)
package over; //오버라이드 /* * 메소드 오버라이드는 객체지향 언어에서 자주 사용되는 기술입니다. * 상속받은 부모 메소드의 내용을 자식 클래스에서 재정의 하여 자식 내용에 맞게 사용하는 것을 이야기 합니다. * * 주의상항 * 1. 메소드의 형식은 상속받은 메소드ㅘ 동일해야 합니다 * 2. 접근제어자는 반드시 부모의 거과 동일하거나, 더 큰 범위어야 합니다. * 3. 재정의된 메소드의 부모 메소드는 자식의 거에 은빅(hide) 되어지기 때문에 * 저기접적으로는 더이상 호출할 수 없습니다. * 4. 은닉 된 부모의 메소드 호출할 때 super라는 키워드를 통해 호출합니다. * * */ public class Override { }
2023.12.20 -
231219 JAVA Overload(오버로드)
package over; /* * 오버로드 * 메소드는 클래스에서 특정 기능을 수행하도록 설계되어 있습니다. * 정의시 컴파일러는 같은 메소드로 중복 정의가 되어있는지를 확인합니다. * 확인시 기준요소로는 메소드 이름과 메소드 파라미터가 있습니다. * 이 중 파라미터는 3가지로 나뉩니다. * 파라미터의 수, 순서, 타입으로 구분합니다 * 위 세가지 요소를 통칭하여 메소드 시그니쳐라고 합니다. * * 만약 정의된 메소드가 이름과 시그니쳐까지 같다면 그것은 같은 메소드로 * 인식하여 컴파일 에러를 유발합니다. * * 만약 시그니쳐 중 하나라도 다르다면 다른 메소드로 인지합니다. * * 따라서 필요시 같은 이름을 메소드를 여러개 정의할 수 있습니다. * 단, 시그니처는 다르게 해주어야 합니다. * * 이렇게 ..
2023.12.20 -
231219 JAVA Inheritance(상속 + 접근제어자 protected)
package com.sukgi.inheritance; //상속 + 접근제어자 protected import dec19.Test03; //1 코드량 줄이기 //2 클래스간 관계를 만들어서 활용하기 = 다형성 class Animal extends Test03 { protected String name; private int age; public void sleep() { testNumber = 10; System.out.println(testNumber + "animal이 잠을 잡니다"); } } class Cat extends Animal { protected int catNumber; public void change() { testNumber = 10; } @Override public void sl..
2023.12.20 -
231218 JAVA Animal, Cat, Dog, Zoo
이 코드는 Animal 클래스를 정의하고 있습니다. 여기서 Animal 클래스는 동물을 나타내며, 이름(name), 나이(age), 품종(breed), 체력(hp)을 나타내는 필드를 포함하고 있습니다. 또한, 생성자를 통해 동물이 태어날 때 초기화되는 작업이 이루어집니다. Animal 클래스: package com.sukgi.inheritance; public class Animal { String name; int age; String breed; int hp; public Animal(String name, int age) { System.out.println("동물이 태어납니다."); this.name = name; this.age = age; } } 필드 (Fields): String name: ..
2023.12.19