코딩테스트
-
[JAVA/디자인패턴] 싱글톤 패턴(singleton pattern)Language/Java 2021. 6. 3. 18:44
싱글톤 패턴(singleton pattern) 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 static 변수, 메서드를 활용하여 구현할 수 있다. 싱글톤 패턴 구현 생성자는 private로 선언 private School( ) { } 클래스 내부에 유일한 private 인스턴스 생성 private static School instance = new School( ) 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public class School { private static School instance = new School(); //클래스 내부의 단 하나의 인스턴스 생성 private School() { } public static School ..
-
[JAVA] static 변수와 메서드Language/Java 2021. 6. 3. 18:01
static 변수 공통으로 사용하는 변수가 필요한 경우 선언 여러 인스턴스가 공유하는 기준 값이 필요한 경우 => 학생마다 새로운 학번 생성, 카드를 발급받을 때 마다 새로운 카드 번호 생성... static 변수 선언 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스 변수, 정적 변수라고 한다. 인스턴스 생성과 상관없이 사용가능하므로 클래스 이름으로 직접 참조 => Student.serialNumber = 100; static 메서드(method) static 메서드는 인스턴스 생성과 무관하게 클래스 이름으로 호출될 수 있다. 인스턴스 생성 전에 호출 될 수 있으므로 static 메서드 내부에서는 인스턴스 변수를 사용할 수 없다. static 메서드..
-
[JAVA] 접근 제어 지시자와 캡슐화(encapsulation)Language/Java 2021. 6. 3. 14:08
접근 제어 지시자(access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 private: 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가) default: 같은 패키지 내부에서만 접근 가능(상속 관계라도 패키지가 다를 경우 접근 불가) protected: 같은 패키지나 상속관계의 클래스에서 접근 가능, 그 외의 경우 접근 불가 public: 클래스의 외부 어디서나 접근 할 수 있다. get( ) / set( ) 메서드(method) private로 선언된 멤버 변수에 대해 접근, 수정할 수 있는 메서드를 public으로 제공 get메소드의 경우 읽기 전용이고, set메소드의 경우 객체의 속성을 변경..
-
[JAVA] 생성자(constructor)와 오버로딩(overloading)Language/Java 2021. 6. 3. 12:02
생성자(constructor) 객체를 생성할 때 new키워드와 함께 사용한다. => new Student( ) 생성자능 일반 함수와 같이 기능을 호출하는 것이 아닌, 객체를 생성할때 new와 함께 호출된다. 객체가 생성될 때 변수, 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출한다. 생성자는 반환 값이 없고, 클래스의 이름과 동일하다. 대부분의 생성자는 외부에서 접근이 가능하지만, 특정 목적이 있는 경우 private로 선언되는 경우가 있다. 기본 생성자 클래스에는 반드시 하나 이상의 생성자가 존재 => 생성자를 구현하지 않을 경우, 컴파일러에서 자동으로 생성자 코드를 넣어준다. 기본 생성자는 매개변수와 구현부가 없다. new키워드와 함께 호출을 할 수 있다. 생성자 구현방법 컴파일러가..
-
[JAVA] 클래스(Class)Language/Java 2021. 6. 2. 22:51
클래스(Class) 클래스는 객체의 청사진(blueprint) 객체의 속성은 클래스의 멤버 변수로 선언 변수의 데이터타입으로 클래스를 사용할 수 있다. => String name = "Ann" Student 클래스 예시 => 학생에 필요한 속성을 멤버 변수로 선언한다. 객체 지향 프로그램 구현 방법 객체를 정의 -> 객체가 제공하는 기능을 구현 -> 객체가 제공하는 기능들 간 소통을 통해 협력을 구현 클래스 명명기법 클래스의 이름을 지정할 때 대문자를 시작문자로 작성하는 것이 좋고 두 단어 이상일 경우 단어의 첫 글자를 대문자로 표기한다. => Student(단어가 1개일 경우), StudentInfo(단어가 2개일 경우) Java파일 하나에 여러 개의 클래스가 존재할 수 있으나, public클래스는 하..
-
[JAVA] 객체 지향 프로그래밍Language/Java 2021. 6. 2. 22:29
객체(Object) 구체적, 추상적 데이터의 단위(학생, 회원, 생산..) 여러가지 명사(물체), 동작 => 객체 객체 지향 프로그래밍과 절차지향 프로그래밍 절차 지향 프로그래밍 => 시간이나 사건의 흐름을 따른 프로그래밍(순서대로 사건이 처리됨) 객체 지향 프로그래밍 => 객체와 객체 사이 관계를 갖고 프로그래밍을 수행 객체 지향 프로그램 구현 방법 객체를 정의 -> 객체가 제공하는 기능을 구현 -> 객체가 제공하는 기능들 간 소통을 통해 협력을 구현
-
[JAVA/Level1] 수박수박수박수박수박수?Algorithm/프로그래머스 2021. 6. 1. 23:39
문제 설명 길이가 n이고, "수박수박수박..."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 "수박수" 4 "수박수박" 풀이 1. 파라미터 값 n개 만큼 수박을 반복하기 위해 StringBuilder를 사용하여 answer변수를 선언한다. 2. for문을 사용하여 n까지 반복을 수행한다. 3. 삼항연산자를 사용하여 i가 홀수인 경우 "수"를 추가하고, 아닐경우 "박"을 추가한다. 4. answer값을 리턴한다. 코드