자바 프로그래밍 입문
6주
신림
입문
x 2
## 자바 프로그래밍 입문!
"프로그래밍 경험이 없는 비전공자입니다.."
“책은 몇 번 읽었는데.. 막상 코딩을 하려면 뭐 부터 해야할지 모르겠어요..”
“객체지향 프로그래밍이라는게 잘 이해가 안됩니다..”
“에러 찾다가 시간 다가네요..”
생각보다 만만치 않은 프로그래밍 입문! 어떻게 준비하고 계신가요?
책은 두껍고, 내용은 어렵고, 온라인 강의만으로는 해소되지 않는 갈증들!
하나씩 체계적으로 학습해보세요!
## 체계적 학습법?
#### 1. 로드맵 그리기
- 수많은 개념을 하나로 꿰어어야 합니다.
- 단순하고 직관적인 이미지로 자바 프로그래밍을 정복하세요.
![클라우드스터딩-자바-스터디-과외-로드맵](https://i.imgur.com/XVzASgn.png)
#### 2. 코드의 이미지화
- 프로그래밍 코드를 머릿속 이미지로 그려야합니다.
- 이미지 학습법을 통한 완벽한 개념정리!
![클라우드스터딩-자바-스터디-과외-코드-이미지-학습](https://i.imgur.com/YxL3Gla.png)
#### 3. 컴퓨터적 사고법
- 영어 단어 많이 안다고 영작문이 되나요?
- 프로그래밍도 마찬가지입니다. 따라치기는 이제 그만.
- 실습 문제 풀이를 통한, 컴퓨터적 사고법을 익혀봅시다.
<div class="embed-responsive embed-responsive-16by9">
<iframe src="https://www.youtube.com/embed/nARtGOHdIXs" frameborder="0" allowfullscreen></iframe>
</div>
#### 4. 온라인 피드백
- 에러찾기! 프로그래밍 학습의 가장 큰 적입니다.
- 온라인 질의 응답을 통해, 프로그래밍의 장벽을 허물어 드립니다!
![클라우드스터딩-자바-스터디-과외-온라인-피드백-질문-답변](https://i.imgur.com/D7hTXLr.png)
## 목표
- 자바 프로그래밍 학점 A+ 받기!
- 국비지원 교육 완벽 적응!
- 코딩 삽질 시간 단축!
## 커리큘럼
#### [자바 BASIC](https://cloudstudying.kr/courses/10)
+ 1회: 자바 시작하기
+ 2회: 메소드와 조건문
+ 3회: 반복문과 배열
#### [자바 OOP](https://cloudstudying.kr/courses/61)
+ 4회: 클래스와 객체
+ 5회: 자바 API
+ 6회: 상속과 인터페이스
## 수업 방식
1. 리뷰
2. 개념 학습
3. 실습 진행
4. 요약
5. 과제
## 시간 및 장소
+ 시간 협의
+ 스터디룸 또는 카페(비용 개별 부담)
## 비용
총 18시간 수업 기준(매 수업 3시간 x 6회)
+ 1인 수업: 50만원
+ 2인 수업: 45만원
+ 3인 수업: 40만원
+ 4인 이상: 35만원
## 준비물
- 노트북
- 필기 도구
## 연락처
- 카톡: chaesam
- 메일: [email protected]
# 자바 시작하기
주어진 질문에 답하며 학습 내용을 복습해보자.
## 자바 프로그래밍
![클라우드스터딩-자바-프로그래밍](https://i.imgur.com/U87qngm.png)
1. 프로그래밍이란 무엇인지 설명하시오.
2. 프로그래밍에서 자바의 역할은 무엇인가?
3. 다음 코드 주석의, 질문에 답하시오.
```
/* 해당 클래스의 이름은? */
public class Hello {
/* main() 메소드의 역할? */
public static void main(String[] args) {
/* println() 메소드는 무엇? */
System.out.println("hello world!");
}
}
```
## 자바의 특징
![클라우드스터딩-자바의-특징-장점](https://i.imgur.com/nyzFpNf.png)
1. 자바의 프로그래밍 언어적 특징은?
2. 객체 지향 언어(OOP)를 간단히 설명한다면?
3. 해당 코드의 실행 흐름을 분석하시오.
```
public class Lab02Review {
public static void main(String[] args) {
// 변수 생성
String name = "홍팍";
int age = 35;
double weight = 72.4;
boolean isMale = true;
// 결과 출력
System.out.println("이름: " + name);
System.out.println("나이: " + age + "세");
System.out.println("몸무게: " + weight + "kg");
System.out.println("남성인가요? " + isMale);
}
}
```
## 변수와 타입, 그리고 연산자
![클라우드스터딩-자바-타입-변수-연산자](https://i.imgur.com/IejhfCF.png)
1. 아래 코드에서 변수, 타입, 연산자를 찾으시오.
```
int age = 34;
```
2. 변수, 타입, 연산자란 무엇인가?
3. 해당 코드의 결과는?
```
int result = 3 + 8 * (3 - 1);
```
4. 아래 코드의 수행 과정을 설명하시오.
```
System.out.println("123" + 3.14");
```
# 메소드와 조건문
주어진 질문에 답하며, 학습 내용을 복습해봅시다.
## 타입과 형변환
![클라우드스터딩-자바-타입과-형변환](https://i.imgur.com/U8O3Y9L.png)
1. 주어진 코드의 연산 과정을 설명하시오.
```
double a = 5.0 / 2.0;
int b = 4 / 2;
int c = 5 / 2;
```
2. 타입 불일치란?
3. 주어진 코드의 정상 동작 여부를 조사 및 분석하시오.
```
public class Casting {
public static void main(String[] args) {
// 변수 생성
double tall = 176.4;
double weight = 82.34;
/* 1. 실수형 변수를 정수로 캐스팅하여 출력하시오. */
System.out.printf("신장: %dcm\n", tall);
System.out.printf("체중: %dkg\n", weight);
}
}
```
4. 타입 캐스팅이란?
## 메소드
![클라우드스터딩-자바-메소드](https://i.imgur.com/Cmooiyi.png)
1. 메소드란 무엇이고, 그 특징을 설명하시오.
2. 메소드의 호출과 정의란?
3. 주어진 메소드를 분석하시오.
```
public static int square(int n) {
int result;
result = n * n;
return result;
}
```
4. 해당 코드의 실행 흐름을 분석하시오.
```
public class Pork {
public static void main(String[] args) {
// 삼겹살 3인분
int n = 3;
// 칼로리 계산
double kcal = calculate(n);
// 결과 출력
System.out.printf("삼겹살 %d인분: %.2f kcal", n, kcal);
}
// 칼로리 계산 메소드
public static double calculate(int num) {
double result = 0.0; // 반환 값을 위한 변수
int gram = num * 180; // 1인분 당, 180g
result = gram * 5.179; // 1g 당, 5.179 칼로리
return result;
}
}
```
## 조건문
![클라우드스터딩-자바-조건문](https://i.imgur.com/cpoG4ar.png)
1. 조건문이란 무엇인지 설명하시오.
2. 주어진 코드의 결과를 예측하시오.
```
public class Scholarship {
public static void main (String[] args) {
// 메소드 호출
printTest("Park", 100, 92); // Park => 전액 장학금!
printTest("Kim", 82, 96);
printTest("Choi", 82, 88);
}
public static void printTest(String name, int math, int eng) {
String result = "???";
// 전액 장학금
if (math >= 90 && eng >= 90) { // AND: 동시 만족
result = "전액 장학금!";
} else if (math >= 90 || eng >= 90) { // OR: 둘중 하나라도 만족?
result = "반액 장학금!";
} else {
result = "다음 기회에~";
}
System.out.printf("%s => %s\n", name, result);
}
}
```