220922 강의정리
조건문
if문
if(조건식) {
}
Java
복사
if -else 문 = 둘 중 하나인 두가지 경우일 때
if (조건문) {
//조건식이 참일 때 실행 됨
} else {
//조건식이 거짓일 때 실행 됨
}
Java
복사
if-else if 문 =여러개의 조건식을 포함한 조건식
if (조건식) { //조건식 1 참일때 수행
} else if (조건식2) { //조건식2 참일때 수행
} else if (조건식3){ //조건식 3 참일때 수행
} else { // 위 어느 조건도 만족하지 않을때 수행 , 생략가능
} 전체가 한 묶음이기 때문에 두 개가 같이 실행되는 경우는 없음
Java
복사
중첩 if 문 → if 문 안의 if
if (조건식1) { //조건식1 참일때 수행 (하고 나가는게 아니라 안에 if 문으로)
if(조건식2){ //조건식 1,2 모두 참일때 수행
} else{//조건식1은 참이고 2는 거짓일때 수행
}
} else {조건식1 거짓일때 수행
}
Java
복사
switch 문 (조건문에는 if , switch 문만 있음)
=경우의 수가 많은 경우에 사용함
switch (조건식) {// 조건식 계산해서 만약 값이 1,2,3 등이 나왔을 경우
case 값1 :
// 조건식 결과가 값1과 같은 경우 수행될 문장
break;// switch 문 을 벗어난다
case 값2: 조건식 결과가 값2과 같은 경우 수행될 문장
break;
case 값3: 조건식 결과가 값3과 같은 경우 수행될 문장
break;
default ://조건식 결과가 일치하는 case문이 없을 때 수행 생략가능함
} //break;을 사용하지 않으면 switch 전체문을 읽고 빠져나감
Java
복사
switch 조건식의 값은 정수, 문자열이 올 수있음, if 문의 경우 true, false 만 가능함
단 제약 조건이 있음
1) 조건식 결과가 정수, 문자열이어야 함
2) case 문의 값은 정수, 상수,(문자포함) 문자열만 가능하며, 변수 ,실수 안됨
중복되지 않아야함
가위바위보게임
public class 가위바위보게임 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("가위(0), 바위(1), 보(2): ");
int user = sc.nextInt();
int computer = (int) (Math.random() * 3);
if (user == computer)
System.out.println("인간과 컴퓨터가 비겼음");
else if (user == (computer + 1) % 3) // 0은 1한테 지고 1은 2한테, 2는 0한테 진다. //벨로그 정리하고 이해하기 숙제
System.out.println("인간: " + user + " 컴퓨터: " + computer + " 인간 승리");
else
System.out.println("인간: " + user + " 컴퓨터: " + computer + " 컴퓨터 승리");
}
}
Java
복사
if 문 안에 if 문을 넣는 경우 → if 문 else if 문으로 빠질 수 있기 때문에 되도록 이를 권장함
객체
객체지향 장점
코드의 재사용성, 유지보수가 용이, 중복코드 제거
객체지향 언어란?
프로그래밍 언어 + 객체지향개념(규칙) 이 추가된 것
객체지향 언어 특징 OOP 4개
1)캡슐화
2)상속
3)추상화
4)다형성 ←굉장히 중요
객체지향 개념은 어떻게 공부하는가?
6장으로 기본기 다진 다음 7장 다형성(을 먼저 이해하는 것이 매우 중요) 다 이해하고 → 추상화 , 인터페이스
객체지향개념(규칙)을 외우자! 외워야 프로그래밍을 할 수 있음
규칙이 왜 생겼는지 생각하지 말고 일단 외우자! 반복하다 보면 알게됨
a4 용지에 적어서 요약해서 외우기! 기초편 다한 후 3판 실습해보자!
ch6 2~4
클래스란? =설계도
클래스란 객체를 정의해 놓은 것
클래스 용도
클래스는 객체를 생성하는데 사용
객체란? =제품
실제로 존재하는 것, 사물 또는 개념
객체의 용도
객체가 가지고 있는 기능과 속성에 따라 다름
객체의 구성요소 (속성과 기능)
객체(TV) = 속성(변수) + 기능(메서드) SW화 시킬 수 있음
클래스 = TV 설계도
객체외 인스턴스
객체= 모든 인스턴스를 대표하는 일반적인 용어
인스턴스= 특정 클래스로 부터 생성된 객체 (예시 = tv인스턴스)
클래스가 필요한 이유?
객체를 생성하기 위해서 // 설계도를 만들어 놓으면 편리하니까
객체는 왜 필요한가?
제품이 왜 필요한가? 객체(제품)을 사용하기 위해서
객체를 사용한다는 것?
객체(tv)가 가진 속성(변수) 기능(메서드 println 같은것)을 사용하려고
메서드란?
1) {문장}들을 묶어논 것 작업단위로 묶은것
2) 값을(입력) 받아서 처리하고, 결과를 반환(출력)
코드 중복 등을 없애는 것 처럼
하나의 작업을 하는 코드를 하나로 묶은다음 이름을 붙인 것 = 메서드
메서드의 장점
코드 중복 줄일 수 있음
코드의 관리가 쉽다
코드 재사용 가능
코드가 간결해서 이해가 쉬워짐
메서드의 작성
반복적으로 수행되는 여러 문장을 메서드로 작성
하나의 메서드는 한가지 기능만 수행하도록 작성
서로 다른 작업을 하는 코드는 하나로 묶을 수 있지만 하지않는다 !
메서드란?
메서드= 선언부 + 구현부
참조형(reference type)의 선언 및 메모리
메소드 관련 예제 -1
public static void main(String[] args) {
System.out.println("프로그램의 시작");
hiEveryone(12);
hiEveryone(13);
System.out.println("프로그램의 끝");
}
public static void hiEveryone(int age) {
System.out.println("좋은 아침입니다.");
System.out.println("제 나이는 " + age + "세 입니다.");
}
HTML
복사
미니프로젝트
java
class Rectangle {
private int width;
private int height;
public void setWidth(int width) {
this.width = width;
}
public void setHeight(int height) {
this.height = height;
}
public int getArea() {
return this.width * this.height;
}
}
public class ex_0922_7 {
public static void main(String[] args) {
Rectangle rec = new Rectangle(); //객체생성
rec.setWidth(10);
rec.setHeight(10);
System.out.println(rec.getArea());
}
}
HTML
복사
과제
1.
Grade 클래스를 만들고, 국어, 영어 수학을 입력 받는 기능을 만들고 평균이 90 수 우 미 양 가 를
출력하는 프로그램을 만드시오
위의 것을 테스트 하는 GradeTest 클래스를 만드시오.
3.
업 다운게임을 리펙토링해서 class로 만들어서 테스트클래스 따로 만들어라