쉽게 배우는 자바1[생활코딩] - 공부 기록 |
해당 강의는 https://www.boostcourse.org/cs126 에서 무료로 수강 할 수 있다.
강의에서 다루는 내용
- 데이터의 종류를 왜 나누고 어떻게 연산을 하는가
- 자바의 데이터 타입과 연산의 종류
- 자바의 숫자 데이터에서 할 수 있는 연산
- 자바에서 문자열을 표현하는 방법
- 문자열의 주요 연산들
- 자바에서 변수를 만드는 법
- 변수의 효용 (코드의 재사용성, 가독성)
- 데이터 타입 변환 방법
2. JAVA 프로그래밍 구성
CHAPTER 6, 7
데이터와 연산, 데이터 타입
컴퓨터가 다룰 수 있는 데이터는 다양하다. 숫자(Numbers), 문자열(String), 영상/소리/기타 등등.
이런 데이터 마다 처리하는 방식은 다르다. 그렇기 때문에 데이터의 종류를 구분해야 한다.
코드에서 문자와 숫자는 구분되어야 한다.
public class Datatype{
public static void main(String[] args) {
System.out.println(6); // Number
System.out.println("six"); // String
System.out.println("6"); // String 6
System.out.println(6+6); // 12
System.out.println("6"+"6"); // 66
System.out.println(6*6); //36
// System.out.println("6"*"6");
System.out.println("1111".length()); //4
System.out.println(1111.length()); //이건 Exception 남
}
}
숫자 데이터 특징
* 자바에서 숫자는 다른 기호와 함께 입력하지 않고 그대로 입력합니다.
* + 연산자는 덧셈의 연산을 수행합니다.
문자 데이터 특징
* 자바에서 문자열은 쌍따옴표("") 안에 적습니다.
* + 연산자는 결합의 연산을 수행합니다.
* 문자열 간에는 * 연산자를 사용할 수 없습니다.
* length 연산은 문자열의 길이를 반환합니다.
숫자와 연산
수학과 관련된 것들을 모아놓은 일종의 캐비닛과 같은 Math라는 클래스가 있음.
Math 안에 있는 여러 데이터와 명령들 중에서
PI 데이터를 불러와서
floor 명령어를 이용해 내림을 해 보고,
ceil 명령어를 이용해 올림
public class Number {
public static void main(String[] args) {
// Operator(연산자)
System.out.println(6 + 2); //8
System.out.println(6 - 2); //4
System.out.println(6 * 2); //12
System.out.println(6 / 2); //3
//math
System.out.println(Math.PI);
System.out.println(Math.floor(Math.PI)); //내림
System.out.println(Math.ceil(Math.PI)); //올림
}
}
문자열의 표현과 다루기
- 문자(character) 자료형
- 문자열 리터럴
- 이스케이프
public class StringApp {
public static void main(String[] args) {
System.out.println("Hello World"); // String. 문자열
//System.out.println('Hello World'); // ''는 Character를 나타냄. 한글자를 표현하는 데이터 타입.
System.out.println('H'); //Character. 문자ㅓ
System.out.println("Hello "
+ "World");
//줄바꿈
System.out.println("Hello \nWorld");
//escape
System.out.println("Hello \"World\""); // Hello "World"
// \이후에 "를 쓴것은 "를 일반 문자열 취급하기위함.
// \이후에 " 임무를 해방시킨다는 의미로 escape 한다고 함
}
}
- String
- length 메소드
- replace 메소드
public class StringOperation {
public static void main(String[] args) {
System.out.println("Hello World".length()); // 11
System.out.println("Hello, leezche ... bye. ".replace("leezche", "egoing"));
System.out.println("Hello, [[[name]]] ... bye. ".replace("[[[name]]]", "tgkim"));
}
}
- length는 문자열의 길이를 산출
- replace는 두 개의 인자 oldChar, newChar를 받아, oldChar에는 기존의 문자열에서 바꾸고 싶은 부분을 입력하고 newChar에는 바꾸고자 하는 문자열을 입력
- EX) "문자열".replace(oldChar, newChar);
CHAPTER 8
변수의 정의
자바에서는 변수를 지정할 때 변수의 데이터 타입을 먼저 선언한다. 선언 이라는 말을 앞으로도 자주 씀.
public class Variable {
public static void main(String[] args) {
int a = 1; // 변수 정수 // 변수를 만들때 어떤 데이터 타입을 쓸 수 있는지 지정해줘야 한다.
System.out.println(a);
double b = 1.1; // 변수 실수
System.out.println(b);
String c = "Hello World"; // 변수 문자열
System.out.println(c);
int d;
d = 1;
System.out.println(d);
//왜 이런식으로 변수를 앞에 정의해줘야 하는가?
}
}
변수를 만드는 이점
- 재사용할 때 편함
- 코드의 의미파악에 도움
public class Letter {
public static void main(String[] args) {
String name = "egoing";
System.out.println("aaaa, "+name+" .. "+name+" .. bb .. bye");
double VAT = 10.0;
System.out.println(VAT); //변수를 사용해 코드를 작성하면 코드를 빠르게 파악할 수 있도록 도움이 된.
}
}
데이터 타입 변환
숫자 1을 2로 나누면 0.5 인데, 자바에서 정수 1을 정수 2로 나누어서 결과를 확인해 보면 0이 나온다.
>> 원하는 답을 얻으려면 데이터 타입을 정수에서 실수로 변환하는 과정이 필요하다.
public class Casting {
//Casting은 다른 데이터타입으로 컨버
public static void main(String[] args) {
double a = 1.1;
double b = 1; //인티저 형을 더블형으로 컨버팅
System.out.println(b); // 1.0
//int c = 1.1;
double d = 1.1;
int e = (int) 1.1; // 더블형을 인티저 형으로 컨버
System.out.println(e); // 1
// 1 to string
String strI = Integer.toString(7);
System.out.println(strI);
}
}
정수에서 실수로 변환하기 위해서 명시적으로 데이터 타입 변환을 나타낼 필요X
반대로 실수에서 정수로 변환할 경우 데이터 타입을 명시적으로 변경해 주어야 한다. EX) int e = (int) 1.1;
CHAPTER 9, 10
IoT 프로그램 만들기를 통해 외부 패키지를 이용해 보고 학습함.
외부 패키지를 다운받아 org 디렉토리에 넣음.
import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;
public class OkJavaGoInHome {
public static void main(String[] args) {
String id = "JAVA APT 507";
// Elevator call
Elevator myElevator = new Elevator(id);
myElevator.callForUp(1);
// Security off
Security mySecurity = new Security(id);
mySecurity.off();
// Light on
Lighting hallLamp = new Lighting(id+" / Hall Lamp");
hallLamp.on();
Lighting floorLamp = new Lighting(id+" / floorLamp");
floorLamp.on();
}
}
import 구문을 이용하면 기존에 org.opentutorials.Elevator과 같이 입력해야 하는 구문을 Elevator로 단순하게 입력할 수 있습니다.
"JAVA APT 507"과 같이 반복적으로 사용되는 값의 경우는 변수로 지정하여 재사용할 수 있고 의미있는 이름을 지정하여 코드의 가독성을 높일 수 있습니다.
이클립스 디버거 사용하기
디버거 실행
브레이크 포인트를 지정하고 디버거를 실행하면 포인트까지 코드 실행되고 일시정지 됨.
그상태에서 차근차근 디버깅을 하는것임.
Step Over 버튼을 클릭하면, 다음 줄에 브레이크 포인트가 생성되어 그 지점까지만 코드가 실행
Step Into 버튼을 클릭하면 코드의 자세한 실행 과정 확인 가능
다시 원래의 코드로 돌아가고자 할 경우에는 Step Return
'들은 강의' 카테고리의 다른 글
[생활코딩 자바2] - 2. JAVA 메소드(리팩토링, 파라미터, return) (1) | 2023.06.06 |
---|---|
[생활코딩 자바2] - 1. JAVA 제어문(boolean data type, 비교 연산, 조건문, 반복문) (2) | 2023.06.06 |
[생활코딩 자바1] - 4. 나의 앱 만들기 (0) | 2023.06.06 |
[생활코딩 자바1] - 3. Java 프로그래밍 시작하기 (0) | 2023.06.06 |
[생활코딩 자바1] - 1. JAVA 프로그래밍 소개 (0) | 2023.06.06 |