일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 상속
- SW
- 모두를 위한 컴퓨터 과학(CS50)
- 관계형 데이터베이스
- WebProgramming
- CS50
- ERD
- CS 기초지식
- til
- 면접을 위한 CS 전공지식 노트
- 부스트코스
- 객체지향
- 모두를 위한 컴퓨터 과학
- exception
- 기초프로그래밍
- Compute Science
- ssafy
- Computer Science
- CS 기초
- Java Programming
- 데이터베이스 모델링
- 알고리즘
- SSAFY 9기
- java
- w3schools
- 예외처리
- 삼성청년SW아카데미
- CS기초지식
- edwith
- 이진법
- Today
- Total
Joslynn의 하루
대용량 웹서비스를 위한 MSA Full-Stack 개발자 양성 과정 -7일차 노트 필기_객체 타입 배열, 객체_220726 본문
대용량 웹서비스를 위한 MSA Full-Stack 개발자 양성 과정 -7일차 노트 필기_객체 타입 배열, 객체_220726
Joslynn 2022. 7. 26. 18:34Arrays.toString(배열);
: toString 인수를 전달된 배열의 데이터를 모두 꺼내서 , 구분해서 하나의 문자열로 리턴해준다.
객체 타입 배열
String names [ ] = new String [5]; // 이름 저장
0 | 1 | 2 | 3 | 4 |
희정 | 나영 | 효리 | 동건 | 소영 |
int ages [ ] = new int [5]; // 나이
0 | 1 | 2 | 3 | 4 |
20 | 22 | 23 | 17 | 9 |
String address [ ] = new String [5]; // 주소
0 | 1 | 2 | 3 | 4 |
서울 | 대구 | 서울 | 제주도 | 대전 |
String phones, ,,,,
: 누가 누구의 data인지 매치하기 어려움, 속성의 정보 여러 개 = 객체로 관리
→ 하나의 객체는 속성과 메소드로 존재
: 속성; 이 객체가 가질 수 있는 정보
// 여러 개의 속성을 관리할 클래스 == 객체를 만든다. ; == 속성의 의미를 부각할 수 있는 객체명 필요;
==> ValueObject = vo, Data Transfer Object = DTO, Domain // 속성들을 관리해줄 객체들 (private 멤버필드, public setter &getter method 가짐);
class student{
// 학생이 가져야할 속성 선언 (field = 전역변수)
String name;
int age;
String address;
}
: 1명 분 정보 만듦; 그러면 class student를 5개를 또 만들어야 함;
: 변수 5개 → 객체 타입 배열 사용 가능
Student [ ] stArr = new Student [5]; // 현재 기본값 null들어가 있음;
// 각 index 공간에 값 부여;
stArr [0] = new Student(); // student 객체가 들어가야 함;
stArr [1] = new Student();
stArr [2] = new Student();
stArr [3] = new Student();
stArr [4] = new Student();
// Student라는 객체 5개 형성;
**중요: 객체 Student는 new 연산자를 만나는 순간, 초기값 설정;
String name = null;
int age = 0;
String address = null;
stArr[0].name "희정", stArr[0].age = 20...;
stArr[1].name "나영", stArr[1].name = 22...;
stArr[2].name "효리", stArr[1].name = 23...;
:배열 이름(주소) 하나만 알면, 학생 1명의 모든 정보를 알 수 있음;
은닉(캡슐화)
private
: 외부에서 직접 접근하지 못하도록; == 외부로부터 데이터를 보호;
: 내가 부여한 값을 간직;
if, 미성년자 학생은 존재할 수 없음; 반드시 18보다 큰 숫자가 int age에 들어와야 함;
public에 공개되어 있어 누구나 data 값을 바꿀 수 있는 경우, 실수로 나이에 5를 부여 || 음수 부여 == 보이지 않는 버그;
미연에 방지를 위해 private 사용;
class student{
// 학생이 가져야할 속성 선언 (field = 전역변수)
private String name;
private int age;
private String address;
/*setXxx 메소드
1) 제한자: public
2) return type: void
3) 인수 필수
*/
public void setAge (int age){
/* 기능 - 제어가 가능함; : 나이가 18보다 작은지 물어볼 수 있음; age는 private 맴버필드이므로, 반드시 본 메소드를 사용해서만 값을 변경할 수 있음.
즉, 개발자가 의도한 대로만 정보를 변경할 수 있음;
필드는 check를 할 수 없지만, 메소드는 할 수 있기 때문;
*/
this.age = age;
}
/*getXxx 메소드
1) 제한자: public
2) return type: 필수
3) 인수 없음
*/
public void getAge (){
return age;
// 나이를 조회해 나갈때, 만 나이는 -1을 해서 하나씩 줄여서 나가는 등의 제어가 가능;
// 멤버필드에 직접 값 부여 시 앞선 행위 불가능;
}
}
: 멤버필드를 조회하고 변경할 수 있는 메소드 제공해야 함; (setter(변경), getter(조회) 메소드)
setter , getter 메소드 = 내가 만들어놓은 대로만 조회, 값 가져감;
: 현재 Student class에서 필요한 메소드는 총 6개, since 맴버필드 1개 당 각각 set, get 메소드 가짐;