목록전체 글 (191)
JAN's History
1. 제어자 - 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 - 하나의 대상에 여러 제어자를 같이 사용 가능(접근 제어자는 하나만) 1-2. static : 클래스의, 공통적인 클래스 변수 : 인스턴스 변수 앞에 static을 붙이면 된다. 인스턴스 변수는 각각 고유한 값을 가지지만 클래스 변수는 모든 인스턴스가 공통된 값을 공유한다. Ex) 카드의 모양이 모두 같다면 무늬와 높이가 클래스 변수가 될 수 있다. static의 사용방법 3가지 1. 인스턴스변수(iv)앞에 static을 사용하면 클래스 변수(cv)를 만들 수 있다. (간단한 초기화) 2. static{복잡한 초기화 기능}을 사용하면 클래스 초기화 블럭이 만들어진다. 3. static 뒤에 메서드를 사용하면 static ..
1. 상속 - 기존 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것. - 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다) class Parent{} class Child extends Parent{ // ... } 에서 Child와 Parent는 상속관계이고, Parent가 부모이다. - 자손의 변경은 조상에 영향을 끼치지 않는다. Parent는 멤버 1개 Child는 멤버 2개 (상속받았기 때문) ... > 점점 확장해나가는 것 그래서 extends! 1- 2. 포함관계 포함 : 클래스의 멤버로 참조변수를 선언하는 것. - 작은 단위의 클래스를 만들고, 이 들을 ..
1. 문제 10828 2. 문제 9093 3. 문제 1157 문제 10828 : 스택 풀이 (Scanner + StringBuilder) 설명 스택의 기본적인 원칙은 후입선출이다. (LIFO : Last in First out) 즉, 나중에 들어온 것이 먼저 나간다. 스택의 기본적인 구조는 이러하다. 스택의 기본적인 함수를 아래와 같이 이용하여 코드를 짜본다. push X : 정수를 X 스택에 넣는 연산이다. pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우엔 -1를 출력한다. size : 스택에 들어있는 정수의 개수를 출력한다. empty : 스택이 비어있으면 1, 아니면 0을 출력한다. top : 스택의 가장 위에 있는 정수를 출력한다. 만약..
목차 1. 프로젝트 생성 2. 비즈니스 요구사항과 설계 3. 회원 도메인 설계 4. 회원 도메인 개발 5. 회원 도메인 실행과 테스트 6. 주문과 할인 도메인 설계 7. 주문과 할인 도메인 개발 8. 주문과 할인 도메인 실행과 테스트 회원 도메인 설계 - 회원을 가입하고 조회할 수 있다. - 회원은 일반과 VIP 두 가지 등급이 있다. - 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다.(미확정) 1. 메모리 회원 저장소가 간단한 구조이기 떄문에 메모리 회원 저장소로 일단 개발을 진행 2. 추후에 데이터베이스가 선택이 되면 역할과 구현을 나눠 갈아끼우는 형태를 계획 ex) 기름자동차 -> 전기자동차처럼! 실제 구현 레벨로 내려오면 위 그림과 같은 다이어그램이 생성된다. 1. 멤..
3. 변수와 메서드 변수의 선언 위치가 변수의 종류와 범위를 결정한다. 클래스 영역에서 선언하면 인스턴스 변수 혹은 클래스변수이다(공유변수). 메서드 영역은 지역변수. ▶ 인스턴스변수(instance variable) - 인스턴스 생성 후, ‘참조변수.인스턴스변수명’으로 접근해야한다. - 인스턴스를 생성할 때 생성되고, 참조변수가 없을 때 가비지컬렉터에 의해자동제거됨 ▶ 클래스변수(class variable) - 같은 클래스의 모든 인스턴스들이 공유하는 변수 - 인스턴스 생성없이 ‘클래스이름.클래스변수명’으로 접근할 수 있다. - 클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸 ▶ 지역변수(local variable) - 메서드 내에 선언되며, 메서드의 종료와 함께 소멸 - 조건문, 반복문의 블럭..
1. 객체 지향 언어 1. 기존의 프로그래밍언어와 크게 다르지 않다. - 기존의 프로그래밍 언어에 몇가지 규칙을 추가한 것일 뿐이다. 2. 코드의 재사용성이 높다. - 새로운 코드를 작성할 때 기존의 코드를 이용해서 쉽게 작성할 수 있다. 3. 코드의 관리가 쉬워졌다. - 코드간의 관계를 맺어줌으로써 보다 적은 노력으로 코드변경이 가능하다. 4. 신뢰성이 높은 프로그램의 개발을 가능하게 한다. - 제어자와 메서드를 이용해서 데이터를 보호하고, 코드의 중복을 제거하여 코드의 불일치로 인한 오류를 방지할 수 있다. 2. 클래스와 객체 클래스 : 객체를 정의해 놓은 것 객체 : 실제로 존재하는 것(iv의 집합), 인스턴스를 포함하는 일반적인 의미이다. 인스턴스 : 클래스로부터 인스턴스를 생성하는 것. 객체는 ..
5. 생성자 생성자 : 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' Ex) Card c = new Card(); 생성자의 이름은 클래스의 이름과 같아야 하며, 리턴값이 없다. *모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다.* class 선언 후, 매개변수가 없을 시에는 기본 생성자를 추가해주지만 매개변수가 있는 생성자에서 기본 생성자가 없을 경우 에러가 난다. this() Vs this this() - 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용 - 다른 생성자 호출은 생성자의 첫 문장에서만 가능하다. 중복 코드는 옳지 못하다. 코드의 재사용성을 높이기 위해 위와 같이 바꿔줘야한다. this - 인스턴스 자신을 가리키는 참조변수. 인스턴스의 주소가 저장되어 있다. -..