비트란?
코드란?
프로그래밍 언어는 속성으로 말한다
변수와 메소드
컴퓨터의 기본원리는 0과 1의 조합인 것을 모두들 알고있다.
0과 1만 보면 Yes | No 이지만
0과 1을 여러개 조합 한다면 단순 예 아니오를 벗어날 수 있다!
0과 1로 만든 약속을, 또는 약속된0, 1로 만들어진 부호를 '코드'라고 한다.
영어를 모두 표현할 수 있는 최소한의 크기는 바이트(byte)로 약속했다.
1바이트는 영문 1개의 철자를 가리킬 수 있다.
비트의 나열은 약속 이기때문에, 약속이 동일하지 않다면 당연하게도 전혀 다른 결과값이 출력되므로
동일한 코드를 사용하는 것이 무엇보다 중요하다!
위에서 언급 한 것처럼이 아니라면 정보가 잘못 전달 될 상황이 있을 수 있다. 그를 지칭하여 "디코딩 오류" 라고 한다.
(영상편집에서 많이 봐왔을 인코딩, 디코딩 )
인코딩= 사람의 언어를 컴퓨터 언어로 바꾸는 과정
디코딩= 컴퓨터 언어를 사람의 언어로 바꾸는 과정
간혹 메모장이나, 이클립스 한글 주석이 ???로 도배되어 깨지는 경우가 있는데 그 경우도 이와 같다.
8비트 약속=아스키코드 (ASCII)
16비트약속=유니코드 (UNICODE)
그렇다면, 사람이 비트를 고려하면서 일일이 0과 1을 찍어낼 것인가??
답은 No
그렇다면 해결책은? 통역사의 역할을 해줄 "번역"의 역할,
'프로그래밍 언어' 이다.
컴퓨터 언어 번역기=컴파일러
사람이 알아볼 수 있는 단어를 컴퓨터가 이해하는 언어로 변환 시키는 작업을 '컴파일' 한다고 칭한다.
프로그래밍 언어 변천사 : 기계어->어셈블리어->...->C, Java, Python etc...
스크립트언어=한꺼번에 번역 하지 않고, 실행할 때마다 번역 (컴퓨터가 할 '행동'을 정의)
대표적인 ex) 파이썬, 자바스크립트
마크업 언어= 정보 전달을 위한 '틀'을 제공
HTML
프로그래밍 작업의 대부분이 속성의 나열이다.
속성을 어떻게 잘 사용하느냐? 에 따라 프로그래밍의 완성도가 달라진다!
속성 == property
속성 항목 == property item
속성 값 == property value
간단하게 정리하면 엑셀표에서 컬럼(또는 로우)은 속성항목이 될 것이고, 내부 표에 들어가는 값들, 데이터는 속성 값이 될 것이다.
프로그래밍 언어에서는 .(점)으로 속성을 표현한다.
강아지 프린스;
프린스.털길이 = "5cm";
프린스.나이 = "7살";
코드를 보다 머리가 터지겠거든 .(점)은 '~의'로 해석하여 확인 한다면 한결 도움이 될 것이다.
기호 '='(는) = 오른쪽 값을 왼쪽에 입력하라
같다라는 표시가 아니며, 같다를 표시하고싶을 때는 '=='
변수와 메소드
변수='저장 공간' = var (*상수는 const)
메소드= '행동'
프로그램이 정상적으로 작동 하기 위해서는 프로그램에 필요한 '?무언가?'를 보관할 수 있도록 메모리 속에 공간을 예약 해 두어야한다.
메모리 공간을 예약 하는 행위==변수 선언
String : 문자열, char(문자형)을 필요한 만큼만 길게 연결한 형태
무조건 " " 안에 작성(문자열의 끝을 의미, " "자체도 2바이트를 차지 하는 꼴)
반면 char에서 ' '는 그대로 이해하면 됨
메소드 { 안에 작성 하시오
'설명 공간'};
자동차 만들기(String 타이어, String 엔진, String 에어컨, String 시트){
타이어, 엔진, 에어컨, 시트를 각각의 자리에 배치합니다;
조립합니다;
탑승!;
return ~~~~;
}
//예시 더블값은 외부에서 전달 받을 변수형과 그 값입니다.
메소드에서 만든 값을 외부에 전달하는 전달자는
리턴!!
초기의 프로그래밍 언어 개발자들은 메소드가 무조건 리턴 값을 가지게 설계했다.
리턴값이 필요 없을 때는 메소드 앞에
void!!
메소드는 한번 정의 하고 나면 필요시마다 불러와서 사용할 수 있다.(메소드 호출)
메인메소드(){
보조1();
보조2();
};
첫코딩 자바 엘리스 URL
academy.elice.io/courses/1915/lectures/all
Do it! 첫 코딩 | 엘리스
'문과식' 비유와 그림으로 배우는 프로그래밍 기초!
academy.elice.io
조건문 if
만약에 (나== 시인){
그댈 위해 노래하겠소
} else {
그댈 위해 춤을 추겠소
};
if== ~이면&~이라면
else==아니면&그렇지 않으면
and == (속성1=속성 값1)&&(속성2=속성 값2)
or == ||
// ( | = 'Shift' + '\'원표시 )
/*
이진 and == &
이진 or == |
*/
if((속성1=속성 값1)&&(속성2=속성 값2)){
참일 때 실행할 내용~
}else{거짓일 때~
};
else if ??
if(속성1=속성 값1){
속성 1에 대한 작업을 수행
}else if(속성2=속성 값2){
속성 2에 대한 작업을 수행
}else{
이도 저도 아닌 3을 수행한다.
};
else if 를 하나로 보지 말고 else+if로 쪼개서 생각하자!
아닐 경우에 다시 if문을 넣은 것
//if 안에 if를 넣기 귀찮아져서 만들었다는 게 학계정설
반복문 while
다음의 동안 반복(나==학생){
아침 기상;
아침 먹고 씻기;
옷 입고 등교;
공부;
하교;
잠;
};
== 학생인 동안 무한 반복
구체적인 조건을 주어서 반복을 끝내보자!
학생의 기간은 몇으로 잡지?
3년==1095일
int day =1;
while(day<=1095){
침 기상;
아침 먹고 씻기;
옷 입고 등교;
공부;
하교;
잠;
day=day+1; (day값에+1 저장 후 다시 반복 1095까지 반복 후 stop)
}
훨씬 자주 쓰이는 for문을 쓰자!
for(int day=1; day<=1095; day=day+1){
침 기상;
아침 먹고 씻기;
옷 입고 등교;
공부;
하교;
잠;
}
public class Astrisk {
public static void main(String[] args) {
String s = "";
for (int i = 1; i <=2; i++) { i는 1부터 2까지 반복
s=s+"*#"; //""공백 s에 +*# 저장
}
System.out.println(s);
}
}
결과값(console) == *#*#
//i++ (==) i+=1;
줄넘김 문자
\(원화==백슬래시)
\b == backspace
\n == new line
\s == space
\t == tab
클래스란?
이것 저것 필요한 기능을 조합 해서 '하나'로 묶고 이름을 붙여서
언제든지 다시 불러와 편하게 사용할 수 있도록 만드는 기능
클래스란 공통된 특징에 '분류' 하여 만든 코딩 종합 선문세트 이다~
손쉬운 재활용을 위하여!!!
객체지향 프로그래밍?
클래스를 사용해서 코딩하는 것
조각조각 모듈화 만든 클래스들을(부품화) 하여 묶음(객체)으로 조립 해낸다!
//변수 클래스 인스턴스
클래스 기본형
자바의 특성중 하나, 클래스의 이름은 파일이름이어야한다는 것.
+ +생성자의생성자의이
참치선물세트.java
class 참치선물세트{
int 일반;
int 야채;
int 고추;
}
위 작성된 클래스를 가지고
메인에서 생성자로 자유롭게 끌어다 쓴다.
인스턴스 이해하기
붕어빵 기계라는 클래스에서 구워지는 붕어빵 이라는 인스턴스!
값을 변경해서 팥앙금이든 슈크림이든 그때 그때 다른 값을 가지게 할 수 있다
인스턴스 사용시에
참치선물세트 참치03호 = new 참치선물세트();
참치03호.일반=12;
참치03호.야채=3;
참치03호.고추=3;
'참치선물세트' 라는 클래스 자체는 다른 곳에서 미리 정의 해둔 것이다.(별도의 파일)
클래스를 선언 하는 파일과 그 클래스를 사용한 인스턴스를 선언 하는 파일이 다르다!
예시)
세면도구세트.java
class 세면도구세트{
int 칫솔;
int 치약;
int 비누;
int 샴푸;
int 린스;
}
세면도구세트 여행용_세면도구 = new 세면도구세트();
여행용_세면도구.칫솔=2;
여행용_세면도구.치약=1;
여행용_세면도구.샴푸=1;
여행용_세면도구.린스=1;
여행용_세면도구.비누=1;
위에서 풀어쓰던 것을 한번에 압축 한다면??
-------------------------
class 참치 선물세트{
int 일반;
int 야채;
int 고추;
참치 선물세트(int x, int y, int z){
일반= x;
야채= y;
고추= z;
//생성자로 값의 자리를 잡아준 것
}
}
-----------------------
덕분에,
참치선물세트 참치03호 = new 참치선물세트();
참치03호.일반=12;
참치03호.야채=3;
참치03호.고추=3;
이렇게 풀어쓸 필요 없이
이런 식으로,
참치선물세트 참치03호 = new 참치선물세트(12, 3, 3);
간결하게 작성 가능
초기화란?
클래스의 인스턴스를 처음 생성 할 때, 각 메모리 그릇을 만들어주고 동시에 값을 넣는 일련의 작업
-----------------------------
생성자 여러개 만들기
class 참치 선물세트{
int 일반;
int 야채;
int 고추;
참치 선물세트(int x, int y, int z){
일반= x;
야채= y;
고추= z;
참치 선물세트(int x){
일반= x;
야채= 0;
고추= 0;
}
}
클래스와 인스턴스 구분법
클래스는 Class(첫 글자를 대문자로)
인스턴스는 instance(소문자로)