1. 자바 자료구조
1) 스택
-지역변수가 올라가는 곳
-byte, char 등
-바로 사용하고 끝나면 해제
2) 힙
-스택보다 메모리가 큼
-스택보다 훨씬 큼
-큰 데이어 보관
-상대적으로 오래 보관
-데이터 즉, 변수가 들어감
-스택에 위치한 참조 변수를 이용해서 사용
3) 코드
-데이터 즉 변수가 아닌 실행하는 코드가 들어감
-실행이 목적
- method 영역
- class가 들어감
2. method의 탄생
- main에 긴 코드 작성하면, 코드 이해 및 수정에 힘듦
- 그래서 main에는 method 이름만 작성, 따로 method를 작성
- method = 함수
3. 참조 타입 중 열거타입 eunm
- 사전에 정의된 상수들을 나열한 것
- 프로그래밍 언어에서 사용되는 특별한 데이터 타입
- 변수가 가질 수 있는 여러 가지 가능한 값을 사전에 정의해 놓고, 이 값들 중 하나를 선택하여 변수에 저장
- 특징
고유한 값 | - 각 상수는 고유한 이름을 가지며, 서로 다른 값을 가짐 ex) 컬러를 나타내는 열거타입→ RED, GREEN, BLUE |
제한된 선택지 | - 변수가 가질 수 있는 선택지를 명확하게 제한 - 실수로 다른 값을 할당하는 것을 방지 |
가독성 | - 코드의 가독성을 높이는 데 도움을 - 해당 값이 어떤 의미를 가지는지 명확히 알 수 있음 |
타입 안전성 | - 다른 타입의 값을 열거타입 변수에 할당하는 것을 방지 |
4. 클래스 (class)의 필요성
- 객체지향 프로그래밍(OOP)에서 핵심적인 개념
- 데이터와 그 데이터를 처리하는 메서드들을 함께 묶어서 하나의 타입으로 정의
- 프로그램을 구성하는 주요 구성 요소 중 하나
- 필요성
추상화(abstraction) | - 클래스는 현실 세계의 객체(object)를 모델링하기 위한 수단으로 사용 - 객체의 중요한 특성을 추상화하여 프로그램에서 사용할 수 있게 함 |
캡슐화(encapsulation) | - 클래스는 데이터와 데이터를 처리하는 메서드들을 하나로 묶어서 캡슐화 - 데이터와 관련 기능들이 서로 밀접하게 연관되어 있음 - 데이터와 그 데이터에 대한 연산을 함께 묶어서 외부에서 직접적인 접근을 제한하고 필요한 경우 메서드를 통해 접근하도록 유도 |
재사용성(reusability) | - 클래스를 사용하여 동일한 구조를 가진 여러 객체를 생성 - 코드의 재사용성을 높이고, 유지보수성을 향상시킬 수 있음 |
유지보수성(maintainability) | - 클래스는 관련된 데이터와 기능을 하나의 논리적 단위로 묶어서 코드를 구성 - 코드의 가독성을 높이고, 프로그램의 구조를 명확하게 유지하는 데 도움 - 코드를 이해하고 수정하는 데 용이하며, 버그를 수정하거나 기능을 추가하는 데 유리 |
다형성(polymorphism) | - 클래스와 상속 관계를 통해 다형성을 구현 - 같은 메서드 호출에 대해 다른 동작을 수행하도록 할 수 있는 기능 - 객체지향 프로그래밍에서의 유연성과 확장성을 제공 |
5. 추가로 공부할 내용
- 논리타입 boolean
- 이차원 배열
- Array 배열
- 배열 항목 반복을 위한 for문
int[] numArr= {10, 99, 2, 78, 32, 1, 67};
int min, max;
min = max = numArr[0];
for(int i=1;i<numArr.length;i++) {
// 최소값
if(min > numArr[i])
min = numArr[i];
// 최대값
if(max < numArr[i])
max = numArr[i];
System.out.println(min + " " + max);
}
public static void main(String[] args) {
int[] numArr = { 10, 99, 2, 78, 32 };
int i, j, k, temp;
for (i = 0; i < numArr.length; i++) {
k = numArr.length - i;
for (j = 1; j < k; j++) {
if (numArr[j - 1] > numArr[j]) {
temp = numArr[j - 1];
numArr[j - 1] = numArr[j];
numArr[j] = temp;
}
}
}
}
'네이버클라우드캠프' 카테고리의 다른 글
네이버클라우드캠프 15일차(2/14) (0) | 2024.02.14 |
---|---|
네이버클라우드캠프 14일차(2/13) (0) | 2024.02.13 |
네이버클라우드캠프 12일차(2/7) (0) | 2024.02.07 |
네이버클라우드캠프 11일차(2/6) (0) | 2024.02.06 |
네이버클라우드캠프 1일차(1/24) (0) | 2024.01.28 |