2023.11.21-2024.05.31(238)
-
231219 JAVA Test01
package dec19; public class Test01 { public static void main(String[] args) { //!@#$%^&*(\'"?:; System.out.println("!@#$%^&*(\\'\"?:;"); // System.out.println("\n ."); System.out.println("\t ."); System.out.println("\"문자열\""); //'문자열' System.out.println("'문자열'"); //\ System.out.println("/"); System.out.println("\\"); System.out.println("\\\\"); System.out.println("======================"); Syste..
2023.12.20 -
231219 JAVA AbstractEx2(추상화)
package abstractEx; /*추상 클래스 : 인터페이스의 역할도 하면서 클래스 같은 돌연변이 클래스 * * 추상 크래스를 만들기 위해서는 class 앞에 abstract를 붙인다. * 내부 메소드에도 abstract를 붙이고 바디를 제거합니다. * 인터페이스와 동일하게 메소드 몸통{}이 없다. * ->상속받는 자식 클래스에서 미구현된 메소드를 구현해주어야 합니다. * * * 추상 클래스 : 객체를 만들 수 없는 클래스 * =미완성된 기능이 있기 때문에 객체를 만들 수 없습니다. * * 추상 메소드 : 바디가 없는 메소드(내용이 없다.) * 미완성된, 구현이 없는, 바디가 없는 메소드 * =하위 클래스에서 구현합니다. (오버라이드) * 하위 클래스에서 구현을 강제로 하게 합니다. * =프로그램 ..
2023.12.20 -
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