Java

Java 개발 공부 5일차 (21.08.23)

Pearl_mini 2021. 8. 28. 20:51
728x90

Java

 - 기본형 자료 타입 (정수, 실수, 논리) :Stack에 값이 직접 저장됨

 - 참조 타입 (배열, 열거, 클래스, 인터페이스) :Stack에는 주소값, Heap에 값이 저장됨

 

<자료구조>

Stack - LIFO (후입선출)

Queue - FIFO (선입선출)

 

<메모리사용영역>

Stack

Heap

 

String 타입 선언 방법은 2가지. 

바로 " ~~" 로 선언 혹은 new String (" ~~") 사용

바로 선언 시 같은 문자열일 경우 같은 주소값을 참조함!! but, new String의 경우 무조건 새로 Heap에 생성되고 새로운 주소값을 참조함 

 

<배열> -1차원, 2차원

2차원 배열을 초기화 시키는 방법

 행의 갯수만 선언도 가능

- 배열 복사는 for 문을 이용하거나 System.arraycopy() 메서드를 사용해도 된다. -> 얕은 복사! (예전 배열과 신규 배열이 같은 객체를 참조하게 된다) 

 

향상된 for문

 - 모든 배열을 순회할 경우 사용하면 배열처리가 훨씬 편하다. (짝수, 홀수번째만 불러올 땐 사용 불가능)

 - for (int score :scores) { sum = sum+socre; } => scores배열을 순회하면서 한개씩 score 변수에 넣는다.



클래스(교재 6챕터)

- 읽어서 꼭 이해하기

 

UML (Unified Modeling Language)

https://namu.wiki/w/UML 

Animal (클래스 이름)
+name : String
+age: int (속성)
(메서드)

    class Animal { String name; int age; }

->UML 에 있는 설계도 중 클래스 다이어그램

class는 붕어빵 틀, 객체는 붕어빵

 

객체지향 프로그래밍의 특징

- 캡슐화 (Encapsulation) : 정보은닉 (Information Hiding), 객체 외부에서 정보를 확인할 수 없음

- 상속

- 다형성

 

실제 생성된 메모리를 할당받은 것을 인스턴스로 칭함.

필드 = 멤버변수 (ex. .length) : class에 직접 접근하는 방법

 

class 명을 오른쪽마우스 클릭,run configurations -> args를 입력 가능

 

열거 타입 (enumeration type)

 

private 는 접근지정자 중 하나

class에서 속성중 private를 앞에 붙여주면  다이어그램 상에서는 -가 붙고, 외부에서 직접 접근 (.어쩌고) 할 수 없도록 된다.

Animal (클래스 이름)
name : String
+age: int (속성)
(메서드)

 

private에 접근하려면 set, get method 추가하여 아래처럼 변경됨.

직접 접근은 안되고 간접 접근은 가능해짐.

 

Animal (클래스 이름)
name : String
+age: int (속성)
+ setName(pname: String)
+ getName() : int

 

return 값이 없으면 public 뒤에 void

return값이 있으면 public 뒤에 return값의 타입을 써줌. ex) int, double, String

eclipse에서 자동으로 get/set method를 만들어준다. (source -> generate get, set 

보안을 위해 이렇게 직접 접근을 막고 간접 접근을 쓰도록 프로그램 설계를 한다.



package (패키지)

물리적인 형태는 파일시스템의 폴더

- 클래스를 유일하게 만들어주는 식별자 역할을 한다

- 대문자 사용 안됨.

 

단축키 ( Ctrl + Shift + O)로 패키지 import가 가능하다.

 

public 붙은 것은 어디서든 사용 가능하다.

import 옆에 패키지명.* : 패키지 내 모든 클래스를 임포트한다는 의미.




728x90

'Java' 카테고리의 다른 글

Java 개발 공부 7일차 (21.08.25)  (0) 2021.08.28
Java 개발 공부 6일차 (21.08.24)  (0) 2021.08.28
Java 개발 공부 4일차 (21.08.20)  (0) 2021.08.22
Java 개발 공부 3일차 (21.08.19)  (0) 2021.08.22
Java 개발 공부 2일차 (21.08.18)  (0) 2021.08.19