8월 29일 개인공부

안효빈·2022년 8월 29일
0

개인 공부

목록 보기
1/36
  • 8월 30일 시험 대비 공부

1. 변수의 자료형

자바 컴파일러에 의해 해석되는 자료형

  • 논리형 : boolean(false, true) - 1바이트
  • 문자형 : char(' 작은따옴표 사용) - 2바이트
  • 정수형 : int - 4바이트
    short - 2바이트
    long - 8바이트(뒤에 L이 붙음)
    byte - 1바이트
  • 실수형 : float - 4바이트(뒤에 F, f, 0.0f)
    double - 8바이트(뒤에 d가 붙을수도 있고 아닐수도 있음, 0.0)
        

-- 참조형

  • 클래스를 사용자 정의 자료형이라고 하며, 클래스를 자료형으로 하여 선언된 변수를 레퍼런스 변수라고 한다.

  • 자유메모리 영역인 힙 메모리에 생성된 객체의 주소를 저장한다.

  • 자바에서는 메모리 주소를 직접 소스코드로 참조하는 것은 불가능하다.

*주의할점 = String은 기본 자료형이 아님. 앞글자가 무조건 대문자여야 하고 큰따옴표를 사용해서 선언해야함

1.1 변수명 작성 규칙

  • 대소문자가 구분된다.

  • 예약어를 사용할 수 없다.

  • 숫자로 시작해서는 안된다***

  • 특수문자는 _와 $만 허용한다.

  • 여러단어가 합쳐진 변수명일 경우 각각의 단어의 첫 글자를 대문자로 작성.

-- 클래스, 메소드, 상수변수의 이름 작성

  • 클래스는 대문자로 시작하는것이 관례

  • 메소드이름은 소문자로 시작하고 단어가 여러개 합쳐지면 낙타등.

  • 상수변수의 이름은 모두 대문자로 작성하고 _를 넣어 단어를 구분한다.

(ex) MAX_SIZE)

캐스팅(형변환) - 안나온다함

  • 묵시적 형변환과, 명시적 형변환이 존재함.

  • 묵시적 형변환은 크기가 작은 변수형이 메모리 할당 크기가 큰 변수명으로 바뀔때 자동으로 변환되는것을 의미

int 에서 double로 갈 경우 따로 명시를 하지 않아도 1이 1.0으로 바뀐다.

  • 반대로 메모리 할당크기가 큰 자료형이 작은 자료형으로 바뀔때는 앞에 ()를 이용하여 명시한다

ex) (int)1.24546

2. 제어문 여러가지 주의할 점.

- dowhile문

public class Mak {

public static void main(String[] args) {
	
	int num = 1;
	int sum = 0;
	
	do {sum += num;
			num++;
	}while(num<=100);
	
	System.out.println(sum);
	}

}

do의 수행문 각각의 줄에 세미콜론
while(조건문) 이후에 세미콜론 주의

for문

public static void main(String[] args) {
	
	int num;
	int sum = 0;
	
	for(num = 1; num <= 100; num++) {
		sum += num;
	}
	System.out.println(sum);
	
	}

}

변수 sum의 값을 0으로 설정하는것 주의

while문

public static void main(String[] args) {
	
	int num = 1;
	int sum = 0;
	
	while(num <= 100) {
		sum += num;
		num++;
	}
	System.out.println(sum);
	
	}

num과 sum의 초기값 모두 지정해야됨

Switch문

public static void main(String[] args) {
	
	
	int a = 1;
	String drink = " ";
	
	switch(a) {
	
	case 1 :
	
	drink = "커피";
	break;
	
	case 2 :
	
	drink = "홍차";
	break;
	
	default : 
		drink = "에러";
	}
	System.out.println(drink);
	}
}

switch(값)
{
case 경우 : 수행 + ;
break;

        ...
        
        
        
        

default : 수행 + ;

}

세미콜론 위치와 break, 케이스를 쓰는 구조 주의

3. 클래스의 요소

클래스를 만들떄 들어가는 요소

  1. 클래스 : 유사한 속성을 가진 객체들을 그룹화시켜놓은 틀. 외부 클래스로부터 클래스 블록을 지정하여 외부에서 멤버변수로의 접근을 제한하기도 하며, 자료형이 다른변수들을 배열처럼 메모리에 연속 나열 할당하기 위한 순서를 지정하는 역할을 한다.

-> (유사한 속성, 접근 제어, 연속 나열)

  1. 멤버변수 : 메소드 밖에서 선언된 변수. 객체가 생성될 때 객체의 특징과 속성을 저장하는 곳이다. 멤버변수에는 instance 변수와 static 변수(클래스변수)의 형태가 있다.

-> (메서드 밖, 객체가 생성될떄, 인스턴스 스태틱)

  1. 메소드 : 어떤 특정 기능을 수행하기 위한 명령문의 집합. 코드의 중복을 줄이고 가독성을 높여 주며 유지보수에 용이하게 한다.

-> (명령문의 집합, 코드의 중복)

  1. 생성자 : 객체를 생성할때 인스턴스 값을 원하는 값으로 초기화하기 위한 메소드. 리턴값이 없다. 자바에서 생성자의 이름은 클래스명과 같아야 한다.

-> (객체생성인스턴스, 리턴값, 클래스명)

4. 다형성의 정의, 사례

다형성의 정의

  • 하나의 참조변수로 여러 타입의 객체를 처리할 수 있는 기술.
  • 정보 은닉, 상속과 더불어 객체지향 프로그래밍의 가장 큰 특징 중 하나
  • 객체지향 프로그래밍 유연성, 재활용성, 유지보수성에 기본이 되는 특징임

다형성의 사례

부모클래스 포유류의 move()

자식 클래스 사람, 사자, 호랑이의 move()

같은 이름의 메소드를 쓰지만 자식 클래스가 좀 더 구체적인 의미를 가지게 한다.

5. 정보 은닉(캡슐화, 접근 제어자)

캡슐화란?

  • 하나의 목적 하에 둘 이상의 기능이 모여서 목적을 달성하는 것.
  • 관련 있는 메소드와 변수를 하나의 클래스 안에 묶는 것.
  • 캡슐화에는 정보은닉이 기본적으로 포함된다.(정보은닉이 캡슐화를 의미하는것은 아니다.)

    출처 : https://9327144.tistory.com/m/37

접근 제한자의 정의

  • 클래스에 속한 멤버변수와 메소드들을 클래스 외부에서의 접근에 대한 제한을 걸기 위해 사용되는 단어.

접근제한자의 종류와 제한 범위 표

			외부클래스	하위클래스	동일패키지내	 내부클래스
            
  1. public : O O O O

  2. protected : X O O O

  3. (default) : X X O O

  4. private : X X X O

6. 메모리에서 스택과 큐의 이용

스택과 큐는 보통 데이터 처리시에 데이터를 임시로 저장하거나
입/출력 장치의 데이터를 일시적으로 저장할 때 사용됩니다.

출처: https://namsieon.com/245 [남시언닷컴:티스토리]

  • 스택과 큐는 선형 자료구조이다.

스택(Stack)

LIFO (Last In, First Out) 후입선출 방식



이처럼 입력을 111 222 333 순으로 했다면

출력은 333 222 111 순으로 나온다.

큐(Queue)

FIFO (First In, First Out) 선입선출 방식

큐는 스택과 반대의 순서로 나온다.

111 222 333 순서로 입력했다면

111 222 333 순으로 나온다.

** LIFO 스택 - 푸쉬, 팝 => 게임 무르기 기능, 최근 자료 추출 등에 쓰임
FIFO 큐 - 인큐, 디큐 => 선착순, 서비스 대기열 버퍼

7. 변수를 틀리게 적고 왜틀렸는지 설명

8. 상속

상속에 대한 용어 정리

클래스를 정의할 떄 이미 구현된 클래스를 상속받아서 속성이나 기능이 확장되는 클래스를 구현함.

상속하는 클래스를 상위클래스 부모, 베이스, 슈퍼클래스라고 함

상속받는 클래스를 하위, 자식, derived, 서브클래스라고 함

보통 상위 클래스는 보다 일반적인 의미를 가지고

하위가 더 구체적인 의미를 가진다

B extend A 에서 A(부모)에는 단 하나의 클래스만 사용할 수 있음(자바는 하나의상속만 지원)

상속을 이용했던 사례

수업시간에 Customer에서 지정했던 customerGrade나 bonusRatio를

VIPCustomer클래스에서 새로운 값을 대입하거나, 추가로 saleRatio, agentID를 만들었음.

9. 제어문 날코딩 해야할수도 있음

10. 생성자와 메소드의 특징

생성자

클래스에 대한 객체 생성 시 인스턴스 변수의 초기화를 담당한다.

->(클래스를 인스턴스화해서 객체로 만드는 역할을 한다.)

(클래스명) (인스턴스명) = new 생성자([초기값])

메소드

== 멤버함수

클래스 {} 내에 작성되는 함수로 멤버변수들에대한 기능 및 동작을 정의한다.

11. 콜렉션 프레임워크의 특징과 분류(배점높음)

콜렉션의 정의

  • 객체를 그룹 단위의 데이터로 저장하는 기본적인 자료구조들의 모음

  • 다수의 데이터를 그룹으로 묶어 관리할 수 있으므로 프로그래밍이 보다 편리해지고, 코드의 재사용성을 늘릴 수 있다.

List

  • 객체를 일렬로 늘어놓은 구조

  • 순서를 유지하고 저장

  • 중복으로 저장이 가능

  • ArrayList, Vector, LinkedList 등의 클래스에 사용됨.

  • LinkedList는 데이터값 뒤에 다음 요소에 대한 참조값이 붙어 수정에 빠르다는 장점을 가지고 있다.

Set

  • 순서와 상관없이 저장 = 입력 순서와 출력 순서가 관계없음.

  • 중복으로 저장이 불가능.

  • HashSet, TreeSet 등의 클래스에 사용됨.

  • 아이디, 주민등록번호, 사번 등 유일한 값이나 객체를 관리할 떄 사용

Map

  • 키와 값의 쌍으로 구성됨.

  • 키는 중복해서 저장 불가능하지만, 값은 중복해서 저장할 수 있음.

  • HashMap, TreeMap 등의 클래스에 사용.

스택과 큐가 뭔지 다시한번 공부

12. 자료구조(스택, 큐, 리스트)

선형자료구조이다.
.
.
.
.
.
.
.
.

배열 공부 추가

배열의 초기화

  • 배열은 선언과 동시에 초기화할 수 있음

  • 배열을 초기화할떄는 배열의 개수를 명시하지 않음

  • 아무런 초기화 값이 없이 선언만 한 경우, 정수는 0, 실수는 0.0 객체 배열은 null로 초기화됨

배열 선언 예시

int[] studentIDs = new int[] {101, 102, 103}; //배열 초기화 시에 갯수는 생략함
	
	
int[] studentIDs = new int[3] {101, 102, 103}; //오류발생
	
	
int[] studentIDs = {101, 102, 103}; //가능
profile
다들 화이팅

0개의 댓글