어제 정리를 올리고 잔다는 것을 까먹었다ㅎㅎ
빨리 해야지
객체지향 프로그래밍(Object Oriented Programming)
클래스
Calculator Class
CalculatorMain Class
// 사칙 연산 계산기 만들기?
Calculator c1 = new Calculator();
Scanner sc = new Scanner(System.in);
int start = 0; // 시작 버튼
int num1 = 0; // 숫자 1
int num2 = 0; // 숫자 2
int mul = 0; // 곱셈
double div = 0; // 나눗셈
boolean run = true;
while (run) {
System.out.print("숫자 입력 : ");
start = sc.nextInt();
switch (start) {
case 1: { // 덧셈
c1.sum(12, 32);
break;
}
case 2: { // 뺄셈
System.out.print("숫자 입력1 : ");
num1 = sc.nextInt();
System.out.print("숫자 입력2 : ");
num2 = sc.nextInt();
c1.subration(num1, num2);
break;
}
case 3: { // 곱셈
System.out.print("숫자 입력1 : ");
num1 = sc.nextInt();
System.out.print("숫자 입력2 : ");
num2 = sc.nextInt();
mul = c1.multiplicaton(num1, num2);
System.out.println(mul);
break;
}
case 4: { // 나눗셈
// System.out.print("숫자 입력1 : ");
// num1 = sc.nextInt();
// System.out.print("숫자 입력2 : ");
// num2 = sc.nextInt();
div = c1.division();
System.out.println(div);
break;
}
case 5: { // 종료
System.out.println("종료합니다.");
run = false;
break;
}
default: {
System.out.println("다시 선택하세요");
break;
}
}
}
Scanner sc = new Scanner(System.in);
Calculator () { // 기본 생성자
System.out.println("--------------------------------------------");
System.out.println("1.덧셈 || 2.뺄셈 || 3.곱셈 || 4.나눗셈 || 5.종료");
System.out.println("--------------------------------------------");
}
// 리턴 타입 : 없음
// 메서드 이름 : sum
// 매개변수 : int 2개
void sum (int num1, int num2) { // 1
int sum = 0;
sum = num1 + num2;
System.out.println(sum);
}
// 리턴 타입 : 없음
// 메서드 이름 : subration
// 매개변수 : int 2개
void subration (int num1, int num2) { // 2
int sub = 0;
sub = num1 - num2;
System.out.println(sub);
}
// 리턴 타입 : int
// 메서드 이름 : multiplicaton
// 매개변수 : int 2개
int multiplicaton (int num1, int num2) { // 3
int mul =0;
mul = num1 * num2;
return mul;
}
// 리턴 타입 : double
// 메서드 이름 : division
// 매개변수 : 없음
double division () { // 4
int num1 = 0;
int num2 = 0;
System.out.print("숫자 입력1 : ");
num1 = sc.nextInt();
System.out.print("숫자 입력2 : ");
num2 = sc.nextInt();
double div = 0;
div = (double)(num1 / num2);
return div;
}
Board Class
필드: 글제목, 작성자, 내용, 조회수
메서드
1) boardWrite: 글작성을 위한 메서드
2) boardView: 글조회를 위한 메서드
3) boardUpdate: 글수정을 위한 메서드
BoardMain Class
기본 생성자를 이용하여 객체를 만든 뒤 메서드를 호출하는 방식으로 한다.
boardWrite 메서드를 호출하여 새글을 작성한다. (해당 필드값 저장)
1) 새글 작성을 위한 내용은 스캐너를 통해 입력받도록 한다.
a. 스캐너 입력은 BoardClassMain에서 수행
2) 출력 예시
제목을 입력하세요:
작성자를 입력하세요:
내용을 입력하세요:
boardView 메서드를 호출하여 해당 글을 조회한다.(해당 객체의 필드 모든 값 조회)
1) 단, 필드 모든값을 출력하기 전에 조회수를 하나 올린다.
boardUpdate 메서드를 호출하여 해당 글을 수정한다.
1) 제목, 내용만 수정 가능
2) 수정할 내용은 스캐너로 입력 받음
3) 수정 완료 후 해당 글 전체 내용을 출력함.
// 게시판 만들기
// Scanner sc = new Scanner(System.in); // 새끼 스위치만 쓰면 이상해 시발
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = 0;
Board b1 = new Board();
String title = "";
String writer = "";
String content = "";
boolean run = true;
while (run) {
System.out.print("번호를 입력하세요 : ");
num = Integer.parseInt(br.readLine());
switch (num) {
case 1: { // 작성
System.out.print("제목을 입력하세요 : ");
title = br.readLine();
System.out.print("작성자을 입력하세요 : ");
writer = br.readLine();
System.out.println("내용을 입력하세요");
System.out.print(">");
content = br.readLine();
b1.boardWrite(title, writer, content);
break;
}
case 2: { // 조회
b1.boardView();
break;
}
case 3: { //수정
b1.boardUpdate();
break;
}
case 4: {//종료
System.out.println("종료합니다.");
run=false;
break;
}
default: {
System.out.println("다시 입력하세요");
}
}
}
br.close();
// 게시판 만들기
// 필드: 글제목, 작성자, 내용, 조회수
// 메서드 작성 조회 수정
Scanner sc = new Scanner(System.in);
String title = ""; // 글제목
String writer = ""; // 작성자
String content = ""; // 내용
int viewnum = 0; // 조회수
Board() {// 기본 생성자
System.out.println("--------------------------------");
System.out.println("1.글작성 || 2.글 조회 || 3.글 수정 ");
System.out.println("--------------------------------");
}
// 리턴 : 없음
// 메서드 이름 : boardWrite
// 매개변수 : String 3개
//
void boardWrite(String title, String writer, String content) {
this.title = title;
this.writer = writer;
this.content = content;
}
// 매개변수와 필드 이름을 다르게 해서 this 안붙이기 가능
//
void boardWrite2(String title1, String writer1, String content1) {
title = title1;
writer = writer1;
content = content1;
}
// 리턴 : 없음
// 메서드 이름 : boardView
// 매개변수 : 없음
void boardView() {
System.out.println("글제목 : " + this.title);
System.out.println("작성자 : " + this.writer);
System.out.println("내용 : " + this.content);
this.viewnum++;
System.out.println("조회수 : " + this.viewnum);
}
// 리턴 : 없음
// 메서드 이름 : boardUpdate
// 매개변수 : 없음
void boardUpdate() {
System.out.print("제목을 입력하세요 : ");
String title = sc.nextLine();
System.out.print("내용을 입력하세요 : ");
String content = sc.nextLine();
this.title = title;
this.content = content;
// System.out.println("글제목 : " + this.title);
// System.out.println("작성자 : " + this.writer);
// System.out.println("내용 : " + this.content);
// System.out.println("조회수 : " + this.viewnum);
boardView(); // 메서드 안에서 다른 메서드 호출 가능
메서드 안에서 메서드 호출 가능
void boardUpdate() {
System.out.print("제목을 입력하세요 : ");
String title = sc.nextLine();
System.out.print("내용을 입력하세요 : ");
String content = sc.nextLine();
this.title = title;
this.content = content;
System.out.println("글제목 : " + this.title);
System.out.println("작성자 : " + this.writer);
System.out.println("내용 : " + this.content);
System.out.println("조회수 : " + this.viewnum);
boardView(); // 메서드 안에서 다른 메서드 호출 가능

메서드 안에서 메서드를 사용하면 순서는 이런 순서
Collection Framework안의
List - ArrayList
Map - HashMap
Set - Hashset
3중에 List??
배열은 한번에 크기를 만들고 남는 공간은 낭비가 된다
하지만 arraylist는 크기가 능동적이다
데이터를 추가하면 크기가 늘어나고 지우면 줄어들고 유연하게 이루어 진다.
새로운 데이터를 넣으면 알아서 한 칸씩 뒤로 밀린다
인덱스(index)를 가지고 있다.
리스트를 선언할 때 타입을 정한다
// 선언
// List 객체이름 : list1
// List에 담을 수 있는 데이터 타입 : String
// <> 데이터 타입 클래스 이름만 가능
List<String> list1 = new ArrayList<String>();

<>사이의 데이터를 object로 변환해서 저장하고 다시 가져올 때 String으로 변환해서 가져와야 하는데 그 과정을 지워준다????
int : Integer
long : Long
double : Double
boolean : Boolean
list1.add("첫번째 데이터");
list1.add("두번째 데이터");
list1.add(1, "어디에 들어갈까요");
list1.add(1, "이건 어디에?");
출력을 하면
첫번째 데이터
이건 어디에?
어디에 들어갈까요
두번째 데이터
위 처럼 나온다. add가 사용 될 때 마다 하나 씩 뒤로 밀린다
System.out.println(list1.get(0));
System.out.println(list1.get(1));
System.out.println(list1.get(2));
System.out.println(list1.get(3));
.size() : 크기 확인
System.out.println(list1.size());
remove(index) : index의 자리에 있는 데이터를 지우고 아래 데이터를 한 칸씩 올린다.
음 까먹고 다음날 하느라 급하게 하기도 했고 느낀점 같은 것을 적기 힘들다
ArrayList부터 이제 점점 더 심화 되어가는 느낌이다