1일차의 마지막 내용. 배우면서 느끼는 거는 공부 밀리면 답도 없겠다 하는 거...

아, 오늘은 글씨체를 변경해보았다. 티스토리는 처음이라 이것저것 바꿔보는 중

 


 

1. printf 메소드

서식문자(format 문자)

따옴표 안에 작성하고 %와 함께 사용

%d : 정수

%f : 실수

%s : 문자열

%c : 문자

 

 

printf

서식문자를 사용할 수 있는 출력 메소드

("서식문자열", 값) 형식으로 사용

 

 

printf 사용

ex1) System.out.println(10.0/3);    // 3.3333333... < 실수 자리수 조절 불가

        이 때 소수점을 둘째자리까지만 출력하고 싶으면  printf 사용

        System.out.printf("%.2f", 10.0/3);    // 3.33 < 출력 형식을 지정할 수 있다

ex2) System.out.printf("이름: %s\n", "이순신");    // 이름: 이순신

뒤에 올 값들은 서식문자의 갯수와 타입에 맞춰서 따라와야 한다.

printf()는 print()와 마찬가지로 줄바꿈이 안되기 때문에 \n을 이용해 준다.

printf() 메소드를 사용하면 문자열 연결을 할 때, 자칫 길게 작성될 수 잇는 여러 변수의 코드를 한 번에 보기 쉽게 한 줄에 표시가 가능하다.

 

 

printf 사용 실습

저번 포스팅과 동일한 형식의 실습에 printf를 적용해 보았다. 솔직히 아직까진 코드가 단순해서 그런지 위에서 언급한 printf의 편리함을 잘 못 느끼는 중

 


 

2. 입력 메소드

입력

사용자가 개발자에게 값을 넘겨주는 행위

 

 

입력 상태

커서가 깜빡이면서 값이 들어오기를 기다리는 상태

 

 

Scanner

화면으로부터 데이터를 입력받는 기능을 제공하는 클래스

Scanner sc = new Scanner(System.in);

int num = sc.nextInt();

system.out.println(num); // 사용자가 입력한 num 값을 받아 출력하는 과정

 

 

.(하위연산자)

A.b : A 안의 b, A의 b

 

 

입력 메소드의 종류

next() : 통째로가 사용자가 입력한 문자열 값. 공백 또는 엔터를 구분점으로 판단! 하고 분리하여 입력받는다.

 - ex. next(홍 길동) // "홍", "길동" 이렇게 분리하여 "홍"만 입력받는다.

nextLine() : 통째로가 사용자가 입력한 문자열 값. 공백도 문자로 입력받는다.

 - ex. nextLine(홍 길동) // "홍 길동" 입력됨

 - 앞에 nextLine()을 제외한 다른 입력이 있다면, 의미없는 nextLine()을 미리 하나 써주어야 한다.(아래 예시 있음)

nextInt() : 통째로가 사용자가 입력한 정수값. 정수가 아닌 다른 값을 입력하면 오류가 난다.

 

 

입력 메소드 예제

위에 설명이 생략되어 있는데, Scanner 사용을 위해선 import java.util.Scanner; 필수! Scanner가 java.util 패키지에 있다는 것을 컴파일러에게 알려주는 역할을 한다. 이 코드가 생략되면 Scanner를 찾을 수 없다는 컴파일 에러가 발생한다.

홍 길동을 입력하면 next()는 공백을 구분점으로 판단하고 "홍"과 "길동"으로 각자 입력받는다. 따라서 name에는 "홍"이, name2에는 "길동"이 들어가게 된다.

위에서 '앞에 nextLine()을 제외한 다른 입력이 있다면, 의미없는 nextLine()을 미리 하나 써주어야 한다.'라고 설명했는데, 이는 nextLine()이 공백까지도 문자로 입력받기 때문이다. 때문에 nextLine()을 중간에 호출하지 않고 String addr = sc.nextLine()만 호출했을 경우, "홍 길동"을 적고 누른 엔터가 addr에 입력되게 되어 사는 곳은 공백으로 출력되고 바로 나이 입력을 기다리게 된다.

nextInt()는 정수만을 입력받으므로 의미없는 메소드를 호출하지 않아도 OK.

참고로 입력 메소드가 활성화(?) 되어 있을 때는 콘솔 창의 우측 상단 회색 네모가 빨간색 네모로 활성화 되어 있는 걸 볼 수 있다. 첨부된 그림은 입력이 모두 끝났기 때문에 회색 네모 상태.

참고 2로 입력할 때 커서를 방향키로 아랫까지 확실히 내려준 뒤 입력해줄 것! 왜인지는 정확히 모르겠지만 그냥 입력하니 오류가 나더라.

 


728x90

달거북씨는 책을 좋아하는 문과생 거북이였다. 아, 학창시절엔 이과를 배우긴 했다. 가장 좋아했던 건 생물과 지구과학. 다시 이과로 돌아올 줄 알았으면 전직하지 않는건데. 하다못해 복수전공 할 걸.

 

 


 

1. 변수

 

변수란?

하나의 값을 저장할 수 있는 '저장공간'

x = 10 (저장공간 이름 | 대입연산자 | 값)

대입연산자는 오른쪽에 있는 값을 왼쪽의 저장공간에 넣게 하는 것!

즉, x에 10을 넣어주었기 때문에 x는 10

 

 

변수 사용 이유

반복되는 같은 의미의 값을 쉽게 관리하기 위해서 사용

값에 의미부여를 하기 위해서 사용

 

 

 

2. 자료형

 

저장공간의 종류(타입)

자료형은 보다 다양하지만 주로 사용되는 것들 위주로 알려주셨다.

그 외 달거북씨가 알고 있는 것들.

- 논리형 | boolean | 1byte | true, false

- 정수형 | byte | 1byte | -128~127

- 정수형 | short | 2byte |

- 정수형 | long | 8byte |

아, 그리고 정수형, 실수형, 문자형은 기본 자료형이지만 String은 사실 class다. 그래서 대문자로 시작하는 것. String에 대한 것은 뒤에 형변환 할 때 좀 더 나온다.

 


 

3. 변수의 선언

선언방법

int x = 10; (자료형 | 변수(저장공간)의 이름 | 대입연산자 | 초기값;) > 초기화; 변수에 처음으로 값을 저장하는 것

int x; (자료형 | 변수명;)

 

 

저장

변수 선언 시, RAM 메모리 공간에 저장

x라는 이름의 저장공간이 RAM에 할당되고, 10이라는 값이 들어간다.

공간이 만들어졌으므로 주소값이 부여되지만 알 수 없다.

 

 

선언 시 주의사항

같은 이름의 변수를 선언할 수 없다.

초기화를 해준다.(값을 선언한다.)

되도록 선언부(메소드 상단)에 한꺼번에 선언한다.

 

 

변수명 주의사항

숫자는 맨 앞에 쓸 수 없다. > ex. 1num > error // num1

특수문자는 쓸 수 없다.

공백을 쓸 수 없다. > 대신 카멜 표기법 이용 : noWhere / 또는 _(언더바) 사용 : no_where

항상 영어로 작성

뜻이 있는 명사형 단어를 선택한다. > ex. height, data, ... 

 

 

예제 1

int, float, double, char, String 등을 변수 앞에 붙이면 해당 자료형으로 변환 된다.

같은 이름의 변수는 선언할 수 없지만, 변수에 값을 다시 선언하는 것은 가능한 것으로 보인다.

위 예제에서 처음 num에 부여된 것은 정수 10(> 출력 10). 후에 num = 20; 이라고 새롭게 값을 선언했다(> 출력 20). 마지막으로 num = num + 10; 이라고 값을 선언했고, 출력 값은 20 + 10으로 30이 나온다.

 

 

예제 2

 

문자 A를 정수로 받으니 65가 출력이 되고 정수 65를 문자로 받으니 A가 된다. 마법인가?

이 마법을 가능하게 하는 것은 아스키코드(ASCII; American Standard Code for Information Interchange)다.

굉장히 다양한 문자?를 십진수, 16진수, 8진수로 바꿔주는데, 강사님이 그 중 외우면 좋다고 한 문자들을 아래에 정리했다.

A ~ Z : 65 ~ 90

a ~ z : 97 ~ 122

0 ~ 9 : 48 ~ 57 

해당 문자의 십진수 버전을 외워두라고 하셨다.

 


 

4. 변수 실습

 


728x90

하루에 5시간 강의를 들으려니 달거북씨는 엉덩이가 아팠다. 복습 겸 정리하고 있으려니 좀이 쑤시는 듯 했다. 그래도 아직은 쉬운 편.

 


 

1. 출력 메소드

 

 

출력(print) : 사용자에게 데이터가 표현되는 것

print(); 괄호 안에 있는 값을 그대로 출력, 마지막에 줄바꿈x

println(); 괄호 안에 있는 값을 그대로 출력, 마지막에 줄바꿈o

printf(); 이거는 추후에 다시 설명 예정

 

 

출력 메소드 목적

문제 발생 시, 어떤 부분이 문제인지를 구체화 시킬 수 있도록 라인별로 출력하여 알아내기 위함이다.

사용자를 위한 도구가 아닌, 개발자를 위한 도구

 


 

2. 문자열 출력과 제어문자, 정수 출력

 

 

문자열 출력

큰따옴표""로 묶어 출력

 

 

제어문자

따옴표 안에 작성하고 \(역슬래시)와 함께 사용한다.

\n : Enter

\t : Tap

\" : " 그대로 출력

제어문자는 다양하지만, 자주 쓰이는 것 세 개만 우선 알려주심

 

 

정수 출력

정수는 따옴표 없이 입력

연산자 이용시 연산되어 출력

다른 정수, 실수, 문자와 문자열을 연결 시 + 사용

 


 

3. 출력 실습

 

 


728x90
이 글은 현재 듣고 있는 강의를 따라가며 기록하는 글입니다. 얕은 지식을 기반으로 한 주관적인 견해가 종종 들어가 있으니 유의부탁드립니다. 틀린 부분이 있거나 의견을 주실 때는 둥글게 둥글게 부탁드립니다. 달거북씨는 쿠크다스 입니다.

 

올해 서른 살이 된 달거북씨는 새로운 공부를 시작했다. 

옛날에 C 언어 잠깐 맛보기 했을땐 이게 대체 뭐야 했는데 계속 생각나더라. 묘한 매력의 코딩.

한 번 제대로 배우고 싶다 생각해왔는데, 생업을 목표로 시작하게 되었다.

 


 

1. 개념 몇 가지...

 

객체 지향 언어 

JAVA는 객체 지향 언어다.

객체 지향 언어란, 프로그래밍 언어와 객체 지향 개념이 합쳐진 거라 한다.

음. 그렇구나. 객체 지향 언어구나. 근데 그게 대체 뭐람.

강사님은 나중에 알면 된다고 하셨지만 일단 대충 뜻은 찾아봤다.

 

우선, 객체지향의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물 간의 상호작용이다.' 라고 한다.

 

아하 뭔가 조금 알듯~ 싶지만 저 '객체지향'이란 단어랑 설명이 매치가 안된다. 단어가 쓸데없이 어려운 것 같다.

 

객체지향 向 ; 손 객客 몸 체體 가리킬 지指 향할 향

객체지향 Object orientation ; 물체object 사물의 진로,방향을 정하는 일orientation

 

객체를 지향하다. 물체로 향하다? 물체의 방향을 정하다? 참 알듯말듯 어렵다.

 

컴퓨터 속 세상은 실제 사물의 속성과 기능을 분석한 다음 프로그래밍 언어로 구현한 가상세계이다. 기존에는 프로그래밍 언어만으로 돌아갔지만 프로그램의 규모가 점점 커지고 사용자들이 많아지면서 한계가 생겼고, 이에 객체지향 언어가 각광을 받기 시작했다고 한다.

 

위에 썼듯이 객체지향 언어는 프로그래밍 언어와 동떨어진 언어가 아니라, 프로그래밍 언어에 객체 지향적인 몇 가지 규칙을 새로 추가한 보다 발전된 형태의 것이라고 한다. 객체지향적인 특성으로 하여금 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다고... 

 

 

컴파일

고급언어(사람의 언어)를 기계어(컴퓨터 언어)로 바꿔주는 작업

사람의 언어를 그대로 컴퓨터에 입력하면 컴퓨터는 알아듣지 못하고 온갖 에러를 띄울 거다. 사람과 사람 간에도 언어가 달라 물음표 투성인데 사람과 컴퓨터 사이면 말해 뭐해.

따라서 컴파일을 해주는 프로그램 또는 명령어인 컴파일러를 통해 일종의 통역 과정을 거치게 된다.

 

 

콘솔

사용자와 운영체제가 소통한 결과를 나타내는 창

말 그대로 코딩을 하고 실행했을 때 결과가 나타나는 창이다.

 

 

자바 프로그램 실행

하드웨어(HW) > 운영체제(OS) > JVM > JAVA 프로그램

JAVA는 JVM과 소통하는 언어이기 때문에 운영체제가 바뀌어도 소통이 가능하다. 따라서 운영체제에 독립적이고 이식성이 좋다.

한 번 작성하면 어디서든 돌아가게 하는 것이 자바의 모토라고... 

 

 

JVM(Java Virtual Machine)

자바 가상 운영체제

자바 프로그램을 실행해준다.

 

 

JRE(Java Runtime Environment)

자바 실행 환경

JVM을 생성해주는 부분

JVM에서 코딩을 실행할 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다.

 

 

JDK(Java Development Kit)

자바 개발 도구

JAVA 프로그램을 만드는 것을 도와주는 역할

JRE 외에도 개발에 필요한 도구들을 가지고 있다.

JDK를 설치하면 JRE가 들어있고, JRE 안에 JVM이 들어있으므로 JDK만 설치하면 된다.

 


 

2. JDK 8 설치

Windows JDK 8 다운로드

구글에 JDK8 검색 후 운영체제에 맞는 버전으로 다운로드

사실 달거북씨 가진 컴퓨터는 맥북이다........... 노트북 망가졌길래 맥북 한 번 사봤다가 고생 중이다. 학원에선 윈도우 버전으로 주로 알려준다. 고로 수업 한 번 들으면 구글링은 필수............ 

 

 

Windows JDK 8 설치방법

설치파일 실행 > next > JDK 설치 창에서 Install to : 파일경로 옆 change에 들어가서 \Program Files 부분 지우기 > next > jre 설치창이 뜨면 C:\Java 폴더 안에 jre 폴더 만들기( Java 폴더 안에 보면 jdk1.8.0_~~ 이런 형식의 파일이 있다. 새폴더를 만든 후 jdk 폴더명을 복사해 와서 jdk 부분을 jre로 바꿔주면 끝이다) > next > finish

 

 

환경 변수 설정

jdk 파일에서 vin 폴더 경로 복사 > 제어판에서 환경변수 검색 > 시스템 환경변수 클릭 > 환경변수 아래쪽에 새로 만들기 클릭

변수 이름 : JAVA_HOME

변수 값 : JDK 경로(C:\Java\jdk1.8.0_~~)

위와 같이 만들어 준 후 시스템 변수에서 Path 더블클릭 > 새로 만들기 > 복사한 bin 경로 붙여넣기(C:\Java\jdk1.8.0_~~\bin) > 맨 위로 이동시키기 > 확인 

 

 

통합 개발 환경(IDE)

Eclipse Photon 무설치 버전 사용 예정

 


 

3. 자바 프로그램 구조

기본 구조

 

 

중괄호 {} : 영역, 바디

해당하는 클래스, 메소드 등의 영역을 나타낸다.

현재 선언 중(생성 중)임을 나타낸다.

class 클래스명 {

///////클래스 영역///////

}

 


728x90

+ Recent posts