자바_개념_Day_21
this()
super개념
생성자가 항상 super를 찾아가지는 않는다.
this.가 있다면, 생성자는 자기자신안에 있는 생성자숫자에 맞춰서, this를 따라가는 것이 먼저 일수가 있다.
ㅡㅡㅡ
ㅡ 오전 ㅡ
Student 3가지로 만드는방법
1.그냥하는 방법
2.생성자에서 초기화해서 만드는법
3.어레이리스트(컬렉션 프레임워크 - 자료를 저장하는방식)
그 자료를 어떻게 효율적으로 처리하는게 좋을까?
어레이리스트(장점 : 지웟다가 넣었다가 하는데 용의하다.)
단점 : 멀티쓰레드 되면,
성적
수강과목
학생정보
성적처리
#데이터가 중복이 되면, 최소화 하기 위해 ‘메소드’를 사용한다.
자바에서 역할과 구현(처리)
ex) 부모 > 처리(어떻게
#데이터를 둘로 나누어서 관리한다.
둘의 매개점은 학생번호로 연결고리를 짓는다.
*학생 ㅡㅡㅡ> Student
학번 ㅡㅡㅡ> String sn
이름 ㅡㅡㅡ> String name
수강과목별 점수 ㅡㅡㅡ> Subject[] subjejct
*수강과목 ㅡㅡㅡ> Subject
과목명 ㅡㅡㅡ> String subjectName
담당교수 ㅡㅡㅡ> int subjectScore
*메소드
계산
// 조원들의 요구사항을 모두 적는다.
항목으로 묶는다.
부수적인것,
#역할정하기
인터페이스,추상클래스,상속관계,그 안에 그냥 객체생성할거냐 - 역할을 정한다.
#구현하기
학생의 성적을 출력하는 프로그램 작성(3가지 방법)
1.메소드
2.클래스
3. 어레이리스트
함께 구조를 잡고, 매일매일 회의하기.
설명하고 설명받기
이 설계한다는 것 로직이 잡히는것.
<요구사항>
1)학생별 수강과목이 다르다 => 과목수에 따른 공간 확보
2)학생별 수강과목 점수를 입력받아서
수강과목별 점수 출력하고
3)학생별 총점과 평균을 구하라
*학생 ㅡㅡㅡ> Student
학번 ㅡㅡㅡ> String sn
이름 ㅡㅡㅡ> String name
수강과목별 점수 ㅡㅡㅡ> Subject[] subjejct
*수강과목 ㅡㅡㅡ> Subject
과목명 ㅡㅡㅡ> String subjectName
담당교수 ㅡㅡㅡ> int subjectScore
- 메소드
수강과목과 점수 입력 받아서 계산
- 출력 메소드
<출력형태>
*** ~ 님 수강과목과 점수 확인 ***
수강과목 점수
국어 : 90
….
*** ~님 성적 ***
학번 : ~~
총점 : ~~
평균 : ~~
콜렉션
-List : ArrayList 검색
vector
-set
-Map(key, value)
-단일 쓰레드
-멀티쓰레드(영상,소리,자막)
< Collections Framework >
1. 컬렉션
- 객체의 저장
프레임워크 : 사용 방법을 정해 놓은 라이브러
2. Collection Framework의 인터페이스
- java.util 패키지 안에 위치
1) List :
- 순서가 있는 데이터 집합
- 데이터 중복 가능
- 같은 자료형 저장 가능
- 저장 공간 동적으로 처리
- 객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스가 부여되고
인덱스를 이용해서 객체를 추가, 삽입, 삭제를 할 수 있음
- ArrayList(단일쓰레드환경) : 삽입/삭제는 LinkedList에 비해 느리나
검색 속도는 빠름(인덱스로 검색하기 때문)
- LinkedList : 삽입/삭제는 ArrayList에 비해 빠르나, 검색 속도는 느림
- Stack : Vector 클래스를 상속 받음
- Vector(멀티쓰레드 환경에 사용) : ArrayList와 동일한 내부 구조 가짐
동기화된 메소드로 구성되어 있기 때문에 멀티 쓰레드가 동시에
Vector() 메소드를 실행할 수 없음.
따라서 멀티 쓰레드 환경에서는 안전하게 객체를 추가 또는 삭제할 수 있음
비교) 배열 - 한 번 저장 공간을 확보하면 다시 변경 불가
List - 저장공간이 동적으로 확보
2) Set : 순서가 없는 데이터 집합
중복을 허용하지 않음
HashSet, TreeSet
3) Map : 키(Key)와 값(value)의 쌍으로 이루어진
데이터 집합
순서가 없음
Key는 중복 허용하지 않음
value 중복 허용
HashMap, TreeMap, Hashtable, Properties ...
3. List 컬렉션에 사용하는 메소드
boolean add(E element) : 주어진 객체를 맨 끝에 추가
void add(int index, E element) : 주어진 인덱스에 객체를 추가
set(int index, E element) : 주어진 인덱스에 저장된 객체를 주어진 객체로 변경
E get(int index) : 주어진 인덱스에 저장된 객체를 리턴(반환)
int size() : 저장되어 있는 전체 객체 수
비교) 배열 - 배열명.length, 문자열 - 문자열.length()
boolean isEmpty() : 컬렉션이 비어 있는지 조사
void clear() : 저장된 모든 객체를 삭제
E remove(int index) : 주어진 인덱스에 저장된 객체를 삭제
boolean remove(Object o) : 주어진 객체를 삭제
★은행문제
1.클래스
ㅡ 계좌정보에 관한 Account
ㅡ 실행클래스 : bankApplication
2. Account
ㅡ 계좌번호 : private String accountNO
ㅡ 계좌목록 : private String owner
ㅡ 예금액 : private int balance
3. BankApplication
메소드
ㅡ 계좌생성 : private createAccount();
ㅡ 계좌목록 : private accountList
ㅡ 예금 : private deposit
ㅡ 출금 : private withdraw
ㅡ 계좌번호 찾기 : private Account findAccount(String accountNO)