본문 바로가기

2023.11.21-2024.05.31

231220 JAVA Test01(프로그래머스 문제) 문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요. package kr.co.programmers; public class Test01 { public static String solution(String my_string, String overwrite_string, int s) { String start = my_string.substring(0, s); String end = my_string.substring(s + overwrite_string.length()); Stri.. 더보기
231219 JAVA Test02(static,접근제어자, 상속) package dec19; //2023-12-19 //어제 했던 것 /* * static * 변수, 메소드 앞에 붙여요. * 클래스에 붙어서 동작합니다. * 인스턴스 생성 없이 사용합니다. * 하나만 생성해서 사용할 때. * 상수 사용할때. final. * * * 접근제어자 * 클래스 내부 | 동일 패키지 | 상속 | 기타 * public : O O O O * protected: O O O X * default : O O X X * private : O X X X * * 상속 * 유산 * 클래스간의 관계를 설정해서 부모 자식관계를 만듬 * 부모-자식 * 상위-하위 * super-sub * 부모의 모든 내용을 자식이 사용할 수 있습니다. * class 자식 extends 부모{} * 단, 부모의 priva.. 더보기
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.. 더보기
231219 JAVA AbstractEx2(추상화) package abstractEx; /*추상 클래스 : 인터페이스의 역할도 하면서 클래스 같은 돌연변이 클래스 * * 추상 크래스를 만들기 위해서는 class 앞에 abstract를 붙인다. * 내부 메소드에도 abstract를 붙이고 바디를 제거합니다. * 인터페이스와 동일하게 메소드 몸통{}이 없다. * ->상속받는 자식 클래스에서 미구현된 메소드를 구현해주어야 합니다. * * * 추상 클래스 : 객체를 만들 수 없는 클래스 * =미완성된 기능이 있기 때문에 객체를 만들 수 없습니다. * * 추상 메소드 : 바디가 없는 메소드(내용이 없다.) * 미완성된, 구현이 없는, 바디가 없는 메소드 * =하위 클래스에서 구현합니다. (오버라이드) * 하위 클래스에서 구현을 강제로 하게 합니다. * =프로그램 .. 더보기
231219 JAVA AbstractEx(추상화) package abstractEx; //추상화 /* * 자바에서는 추상화라는 개념이 있습니다. * * 추상 : 현실화 되어질 필요가 없는, 인스턴스화 되어질 필요가 없는 클래스 * * ---> 인스턴스화 할 필요가 없는 성질의 클래스 * * 자바에서는 객체지향을 통해 프로그램이 실행되는데 * 이 추상이라는 개념을 클래스에 적용시키면 * 자신의 인스턴스를 발생할 수 없는 형태로 지정됩니다. * * 이렇게 인스턴스화 할 필요가 없지만 상속 개념에서 중요한 위치를 가지는 * 클래스를 보통 추상 클래스로 정의합니다. * * * 선언규칙 * 1. 클래스에 정의된 메소드 중 추상 메소드가 하나라도 있다면 해당 클래시는 무조건 추상 클래스가 됩니다. * 추상 클래스는 class앞에 absract라는 키워드를 리턴 타.. 더보기
231219 JAVA PolyMorphism(다형성) package polymorphism; //다형성 ploymorphism /* * 다형성은 동적 바인딩이 지원되는 프로그램 언어에서 사용할 수 있습니다. * * 런타임대 최종 타입이 결정됩니다. * * 하나의 객체가 여러가지 형태를 가질 수 있는 것 * * 자바의 다형성은 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는것. * 상위 클래스 타입의 참조변수를 통해 하위 클래스의 객체를 참조할 수 있도록 * 허용하여 상위 클래스가 동일한 메세지로 하위 클래스들이 서로 다른 동작을 할 수 있게 하는 것. * * 다형성을 활용하면 부모클래스가 자식 클래스의 동작 방식을 알 수 없어도 * 오버라이딩을 통해 자식 클래스에 접근할 수 있다. * * 장점 * 유지보수 : 여러 객체를 하나의 타입으.. 더보기
231219 JAVA Override(오버라이드) package over; //오버라이드 /* * 메소드 오버라이드는 객체지향 언어에서 자주 사용되는 기술입니다. * 상속받은 부모 메소드의 내용을 자식 클래스에서 재정의 하여 자식 내용에 맞게 사용하는 것을 이야기 합니다. * * 주의상항 * 1. 메소드의 형식은 상속받은 메소드ㅘ 동일해야 합니다 * 2. 접근제어자는 반드시 부모의 거과 동일하거나, 더 큰 범위어야 합니다. * 3. 재정의된 메소드의 부모 메소드는 자식의 거에 은빅(hide) 되어지기 때문에 * 저기접적으로는 더이상 호출할 수 없습니다. * 4. 은닉 된 부모의 메소드 호출할 때 super라는 키워드를 통해 호출합니다. * * */ public class Override { } 더보기
231219 JAVA Overload(오버로드) package over; /* * 오버로드 * 메소드는 클래스에서 특정 기능을 수행하도록 설계되어 있습니다. * 정의시 컴파일러는 같은 메소드로 중복 정의가 되어있는지를 확인합니다. * 확인시 기준요소로는 메소드 이름과 메소드 파라미터가 있습니다. * 이 중 파라미터는 3가지로 나뉩니다. * 파라미터의 수, 순서, 타입으로 구분합니다 * 위 세가지 요소를 통칭하여 메소드 시그니쳐라고 합니다. * * 만약 정의된 메소드가 이름과 시그니쳐까지 같다면 그것은 같은 메소드로 * 인식하여 컴파일 에러를 유발합니다. * * 만약 시그니쳐 중 하나라도 다르다면 다른 메소드로 인지합니다. * * 따라서 필요시 같은 이름을 메소드를 여러개 정의할 수 있습니다. * 단, 시그니처는 다르게 해주어야 합니다. * * 이렇게 .. 더보기