멤버변수(필드)의 수식어에는 public/private을 줄 수있음. private 수식어가 붙은 멤버는 클래스 외부에서 접근불가






getter/setter를 쓰는이유 : 1. 외부에서 남의 데이터를 직접 접근하는 것을 막기 위해서

         2. 세분화된 접근제어(읽기전용/쓰기전용/둘다됨/둘다안됨) ex) getter만 만들고 setter를 안들면 해당 변수는 읽기전용

         3. 입력값에 대한 검증이 가능



getter 만들기


수식어는public 

반환유형은 내가 getter되고자 하는 변수의 타입

메소드명은 get변수형

매개변수 없음

몸통: return 변수;


setter 만들기 


수식어는 public 

반환유형은 void 

메소드명은 set변수명 

매개변수 : 내가 setter가 되고자하는 변수와 같은 타입의 매개변수 한개

몸통: {내가 setter가 되고자하는 변수} = 매개변수;



메소드 오버로딩 -> 함수이름이 같은데 매개변수가 다른 두개이상의 함수를 정의하는것.




이클립스는 외부 프로그램을 이클립스에 연동해서 사용할 수 있도록 플러그인 인터페이스를 제공, 

외부 프로그램은 이클립스의 플러그인 인터페이스를 준수해서 프로그램을 작성하면 이클립스와 연동해서 이클립스 상에서 사용할 수 있음.


이클립스에 플러그인을 설치하는 방법 :


1. 마켓에서 줍줍

2. 설치 url을 먹이거나

3. 이클립스 폴더안에 쳐박기.


ex)  UML (Unified Modeling Language) - - - - - -ObjectAid UML Explorer







생성자(contructor) : 객체가 생성될 때에 필드에게 초기값을 제공하고 필요한 절차를 실행하는 메소드;

생성자의 특징 : 수식어는 왠만하면 public // 문법적으로 반환유형 자체가 없음 // 얘도 메소드닌까 오버로딩이 가능 //

                      생성자메소드명은 클래스명과 동일


생성자를 하나도 정의 하지 않았을 경우에는 몸통이 텅 비어있는 기본생성자를 컴파일러가 끼워 넣음.


//%02d -> 2칸쓰는데 없으면 0






' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day12 변수  (0) 2016.03.29
Day11  (0) 2016.03.28
Day09 객체지향  (0) 2016.03.24
Day 08 정렬  (0) 2016.03.23
Day 07 배열  (0) 2016.03.22

<객체지향> 관련있는 변수와 함수를 하나의 꾸러미로 묶어서 관리, 실제 세계를 모델링하여 소프트웨어를 개발하는 방법 ;

객체 : 힙영역에 할당되있는 모든 데이터 (new연산자를 이용해 만들어진 데이터) 

객체의 상태(state) : 객체의 특징값(속성) = 변수(필드)이다.

객체의 동작(behavior) : 객체가 취할 수 있는 동작 = 함수(메소드)

 

클래스 : 관련있는 함수와 변수를 조합해 만든 자료형 -> 객체란 클래스를 통해 생성해낸 데이터

         


<객체 지향 프로그래밍(Object-Oriented Programming, OOP)>은 컴퓨터 프로그래밍의 패러다임의 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점을 갖고 있다 


출처 : https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D




<구조체 : 다른 타입의 변수들의 묶음 자료형> -> 사용자 정의 자료형

// 배열 : 같은 타입의 변수들의 묶음 자료형





class Student{

int age;

int score; //Student 타입으로 데이터를 한번 생성하면 그안에는

String name;         // 그안에는 정수변수 두개 문자열변수 한개의 조합된 데이터가 만들어짐

}


public class StructTest {

public static void main(String[] args) {

// Student s;//우리가 만든 데이터타입 Student라는 타입의 변수 s를 생성

Student s = new Student();   //-Student데이터의 위치가담김

               s.age = 10; s.score = 100; s.name = "학생1"; System.out.println("나이 : "+ s.age); System.out.println("점수 : "+ s.score); System.out.println("이름 : "+ s.name); } }



<함수(메소드) : 명령어들의 집합>



public static void 그림그리기명령어집합(){

System.out.println("-=-=-=-=-=--=");

System.out.println("-=-=-=-=-=-==");

System.out.println("-=-=-==-=----");

} // 나중에 또 사용될 가능성이 많은 코드들에 이름을 지어주면 재활용하기 쉬움



public static void 그림그리기명령어집합(){

String name ="??";

name ="학생1";

System.out.println("-=-=-=-=-=--=");

System.out.println("-=-=-=-=-=-==");

System.out.println("-=-=-==-=----");

System.out.println("그림그린사람 : " + name);

name = "학생2";

System.out.println("-=-=-=-=-=--=");

System.out.println("-=-=-=-=-=-==");

System.out.println("-=-=-==-=----");

System.out.println("그림그린사람 : " + name);

name = "학생3";

System.out.println("-=-=-=-=-=--=");

System.out.println("-=-=-=-=-=-==");

System.out.println("-=-=-==-=----");

System.out.println("그림그린사람 : " + name);



그림그리기명령어집합("학생1");

그림그리기명령어집합("학생2");    //인자값 // String name = "학생1" 

그림그리기명령어집합("학생3");


public static void 그림그리기명령어집합(String name){

      //매개변수

//함수 실행 전 매개변수 = 인자값 코드를 수행함

System.out.println("-=-=-=-=-=--=");

System.out.println("-=-=-=-=-=-==");

System.out.println("-=-=-==-=----");

System.out.println("그림그린사람 : " + name);









public class StringTest {

public static void main(String[] args) {

String proverb = "A barking dog";

String s1, s2, s3, s4;

System.out.println("문자열의 길이 = " + proverb.length());

s1 = proverb.concat(" never Bites!");

s2 = proverb.replace('b', 'B');

s3 = proverb.substring(2, 5);

s4 = proverb.toUpperCase();

System.out.println(s1);

System.out.println(s2);

System.out.println(s3);

System.out.println(s4);

}

}




 Object 클래스의 주요 메소드 <-- 모든 자바 클래스들은 Object 클래스로부터 상속받는다.


 메소드

설 명 

 String toString()

 현재 객체의 문자열을 반환한다




객체의 생성

Car    myCar;

myCar = new Car();


1. 참조 변수 선언 : Car 타입의 객체를 참조할 수 있는 변수 myCar를 선언한다.

2. 객체 형성 : new 연산자를 이용하여 객체를 생성하고 객체 참조값을 반환한다.

3. 참조 변수와 객체의 연결 : 생성된 새로운 개체의 참조값을 myCar라는 참조 변수에 대입한다.



' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day11  (0) 2016.03.28
Day10 public/private  (0) 2016.03.25
Day 08 정렬  (0) 2016.03.23
Day 07 배열  (0) 2016.03.22
Day 06 复习  (0) 2016.03.21

선택정렬 : 배열중에서 최소값을 찾아서 첫번째 위치의 값과 자리바꿈, 첫번째 제외하고 최소값을 찾아서 두번째 위치와 자리바꿈,

첫,두번째 제외하고 최소값 찾아서 세번째 위치와 자리바꿈



 두 변수의 값을 바꾸기

        int a = 10;

int b = 20;

int tmp; 

   tmp= a;

a = b;

b = tmp;



선택, 버블정렬의 우너리를 알고 시뮬레이션 할 수 있음 

최소값 혹은 최대값을 배열에서 찾아낼 수 있다. 

두 변수의 값을 바꿀 수 있다.


행렬덧셈



행렬곱셈


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day10 public/private  (0) 2016.03.25
Day09 객체지향  (0) 2016.03.24
Day 07 배열  (0) 2016.03.22
Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18

do while 문





배열 : 같은 타입의 변수들의 집합. // int[] s = new int[29];



배열을 쓰시면 컴퓨터 입장에서도 s[]과 s[1]은 같은 집단으로써 관련있는 아이들,

age와 s[0]은 다른집단이니까 관련없는 놈으로 인지함


배열로 변수집단을 생성하면 같은 집단(배열)에 속한 변수들은 메모리상에 연속된 공간에 할당됨










for-each 루프



분산처리를 하기위해서는 작업의 순서가 없어야 한다. 





(로또 번호 출력)
















얕은 복사, 깊은 복사




선택정렬 : 최소값을 정렬되지 않은 첫번째 원소와 교환


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day09 객체지향  (0) 2016.03.24
Day 08 정렬  (0) 2016.03.23
Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17

지난주 복습... 




if 문


switch 문


for 문





nextLine 입력시 주의 사항

' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 08 정렬  (0) 2016.03.23
Day 07 배열  (0) 2016.03.22
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16

조건문 (if) //  반복문

    

조건문 ex) 만약 비가 오지 않으면 테니스를 친다.

만약 결석이 1/3이상이면 F학점을 받는다.

만약 시간이 없는 경우에는 택시를 탄다.



if 문이 오면 다음 한문장만 인식 / 두문장 이상은 {} 필수


else // if 문법은 혼자서도 실행가능하나 , else 문법은 무조건 if 필요함.



초기화 되지 않은 변수는 사용할 수 없다.



if 문법 -> if(조건식) 조건이 참일 경우 if문에 포함된 문장을 실행 두문장 이상을 if문에 포함시키려면 중괄호로 문장들을 감싸면 됨,




<Math>


Math라는 꾸러미는 각종 수학적인 기능들을 담고있음

ex> random, pi, abs, pow


Math.random() <- 0.0000000~0.9999999까지의 임의의 숫자를 갖다줌.

Math.random()*6 <- 0.0000000 ~ 5.9999999

(int)(Math.random() * 6) <- 0~5

(int)(Math.random() * 6) +1 <- 1~6



<switch 문법>


switch(변수) 

{

case 값:

문장 

case 값:

문장


break ->중괄호 밖으로 내보내기

default : 매칭되는 케이스가 없을시 이동






<반복문>

while // for // do..while


while 문법 : if문이랑 문법이 같음, if는 조건식을 확인하고 참이면 문장수행, while은 조건식 확인하고 참이면 문장수행 후, 다시 조건식 확인, 틀리면 끝.



=반복계수=




' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 07 배열  (0) 2016.03.22
Day 06 复习  (0) 2016.03.21
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15

<변수타입>



* 변수의 이름은 식별자(identifier)의 일종

* 변수 이름의 규칙

~ 식별자는 유니코드 문자와 숫자의 조합                  /* 유니코드는 16비트 */


* 클래스명 : 대문자 

* 변수명, 메소드명 : 소문자로 시작되어 2번째 단어의 첫 글자는 대문자로 한다.


기초형 : 정수 -> int // 실수 -> double

Alt + ↕ = 문장이동 // Ctrl + D = 문장삭제





관계연산의 결과물은 항상 boolean타입의 값 : true / false


논리 연산자는 참/거짓간의 연산


연산자의 우선 순위

(왼쪽 -> 오른쪽) // 단항,부호,대입은 (왼쪽 <- 오른쪽)

10101 11010

10000 <- and 연산결과

11111 <- or 연산결과

01111 <- xor 연산결과  :: 서로 같으면 거짓, 다르면 참


형변환 : 어떤 자료형의 값을 다른 자료형의 값으로 바꾸어 주는 연산

명시적 형변환 // 암시적 형변환

확대 형변환 // 축소 형변환



3가지의 제어구조

순차구조 // 선택구조 // 반복구조



double length = 2 * radius * pie; 

 double area = radius * radius * pie;


관례적으로 심볼릭 상수의 변수명은 모두 대문자 pi -> PI


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15
Day 01 开始  (0) 2016.03.14

百見不如一打 : 수백 번 본들 한번 쳐보고 실행해볼만 하다.




변수는 타입과 이름(바구니 구분용)을 가지고 있다.

:변수는 값을 담는 바구니인데 값의 유형에 따라 바구니의 유형도 여러가지가 있음

ex) ch, i, fvalue


변수의 초기화 : 변수에 처음으로 값을 넣어주는 것


ex) int x; 

int 타입의 변수 x를 생성, 정수를 담을 수 있는 바구니 x를 생성, 정수변수 x를 선언

x = 100 

x라는 변수에 100이라는 값을 담음, x라는 변수의 값을 100으로 초기화


수(constant)는 프로그램이 실행하는 동한 변하지 않는 수.

10.0 : 실수상수 // 10 : 정수상수 // 'a' : 문자상수(한글자만) // "a" : 문자열상수 


수식(expression)은 피연산자와 연산자로 이루어진다, 결과값을 가진다.

x = 100 / y = 200 / sum = x + y



대입 연산자 오른쪽에 있는 값을 왼쪽의 변수에 담음    

대입 연산자 == 할당 연산자 == 배정 연산자                     /* ==  : 같다 */





산술 연산자 

프로그래밍에서는 두개의 피연산자가 같은 타입이면 결과도 그 타입이 나와야함

문자열끼리의 산술은 이어붙임




ex) 4/3 = 1  <- 정수와 정수를 연산했기에 결과도 정수(소수버림)

   5.0/2 = 2.5 <- 서로 다른놈들 연산하면 더 큰타입의 결과로 나옴(문자열>실수>정수)

   6.0/3 = 2.0 // 6/3 = 2





System : 필수기능, 그냥 언제든 사용가능

out : 표준출력 -> 모니토로 데이터를 출력할 수 있는 기능을 가진 꾸러미

in   : 표준입력 -> 키보드로부터 데이터를 읽어들일 수 있는 기능을 가진 꾸러미

Scanner : 입력데이터를 편리하게 가공해주는 도우미 꾸러미, 외부에 있어서 임포트 선언 해야 사용가능 < import java.util.Scanner; >

                                              

  /* Ctrl + space : 자동완성 단축키

sysout <- Ctrl+spase = System.out.print(); */


 






nextInt키보드로부터 들어오는 다음 데이터를 정수로 읽어서 갖다줌, 대기하다가 데이터가 들어오면 정수로 가공해서 가공한 결과를 return.

서식문자 : %시리즈 // %d : 십진수를 나타냄





지역변수 : {}블록안에서 만들어진 변수

-> 변수선언문을 만날때 생성(공간할당), 자신이 포함된 함수가 종료될때 없어짐


스택(stack)은 제한적으로 접근할 수 있는 나열 구조이다. 그 접근 방법은 언제나 목록의 끝에서만 일어난다. 끝먼저내기 목록(Pushdown list)이라고도 한다


먼저만들어진놈이 꼭 늦게 없어짐

// LIFO : Last-In, First-out  

늦게만들어진놈이 꼭 먼저 없어짐


/* 큐(queue)는 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO (First In First Out)구조로 저장하는 형식을 말한다.  */



스택영역(stack) : 지역변수들의 저장

힙영역(heap) : 동적으로 할당한 데이터들이 저장 (기초자료형이 아닌 데이터)


/** 프로그래밍에서,, 정적 : 컴파일시에 미리 예측가능하며 결정된 사항

    동적 : 실행시에 결정되는 사항




<오류>


* 컴파일 오류(compile-error) : 컴파일이 실패한거 (ex. 문법이 틀림)  <--대놓고 발견


* 실행 오류(rum-time error) : 실행중에 프로그램이 뻗는거 (ex. 정수입력 받을라고 스캐너 대기중인데 문자입력..)                        <-- 테스팅 통해 발견       


* 논리 오류(logical error) : 컴파일/런타임 에러 없이 잘 동작했는데, 프로그램 결과가 원한값이 아님.                                                          




자바란?

* 이식성이 높은 언어이다. <- 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수있는것, 자바 실행 환경 (JRE : Java Runtime Environment)


* 객체 지향 언어이다. <- 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는기법 : 객체 지향 프로그램(OOP : Object Oriented Programming)  


* 메모리를 자동으로 관리한다. <- 쓰레기 수집기(Garbage Collector)


**막강한 오픈소스 라이브러리가 풍부하다.


자바 가상 기계(JVM)  

"Write once, run anywhere."



' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 02 메소드  (0) 2016.03.15
Day 01 开始  (0) 2016.03.14

소스파일작성

* 윈도우 보조 프로그램의 메모장 사용

* 파일의 확장자는 .java로 한다.                                   //대소문자 구분!


Hello.java                                                                                        

public class Hello {

public static void main(String[] args){

 System.out.println("안녕하세요. 자바 프로그래머 여러분!");

}

}

                                                                                                  


--> 바탕화면에 저장 --> cmd 실행 --> dir 입력 --> cd Desktop --> dir 입력

--> javac hello.java 입력 -->dir 입력 --> Hello.class 확인(컴퓨터가 실행가능한 기계어로 이뤄진 작업수행명세) --> java Hello 입력(확장자명.class 제외)


-----------------------------------------------------------------------------------

소스코드편집 + 컴파일 + 실행 = IDE



-> 이클립스(eclipse) <-

설치




->이클립스 폰트변경방법





뷰 지정

자바에서 세가지의 주석문법

1. 문장 주석 : //로 시작해서 편집기상의 라인이 끝날때까지의 내용을 무시

2. 문단 주석 : /* 를만나서  */ 만날때까지의 내용을 무시

3. 문서 주석 : /**  **/


이클립스에서의 주석단축키

 ctrl + shift + c (범위지정 후)

ctrl + / (범위지정 후)

자바 내에 public class는 한개 / / F2 - 파일명 변경


/*CPU(중앙처리장치) -> 연산장치

  메모리(주기억장치) -> 저장장치

     HDD(보조기억장치) -> 저장장치*/ 



변수(variable) : 값을 담을 수 있는 바구니 

[데이터를 일시적으로 저정할 목적으로 사용하는 메모리공간]


int x = 100 / int y = 200 / int sum  // sum = x + y



/* 컴퓨터 구조론, 운영체제, 데이터베이스, 네트워크통신, 알고리즘 

bit = 0/1을 한개 저장할 수 있는 공간 / byte : 8bit : 저장 최소 단위 

ASCII

1바이트를 구성하는 8비트 중에서 7비트만 쓰도록 제정된 이유는, 나머지 1비트를 통신 에러 검출을 위해 사용하기 때문이었다. Parity Bit라고 해서, 7개의 비트 중 1의 갯수가 홀수면 1, 짝수면 0으로 하는 식의 패리티 비트를 붙여서, 전송 도중 신호가 변질된 것을 수신측에서 검출해낼 확률을 높인 것. */


클래스(class) : 자바 프로그램을 구성하는 구성요소, 영역을 나누는 역할

= 필드(변수) + 메소드(함수)

메소드(함수)란,, 입력을 받아서 작업을 수행하고 결과를 내보냄, 명령문장들의 집합

main() 메인함수

함수의 구성요소

-> 몸통 : 이 함수가 호출됬을때 실행해야 될 문장집단

-> 매개변수 : 함수가 실행될때 전달받는 입력값

-> 반환값 : 함수가 끝나고 돌려줘야되는 값

/* 구조체 */


' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16
Day 01 开始  (0) 2016.03.14
프로그램 : 컴퓨터가 동장해야되는 수행 명세
데이터 > 정보 : 의미있는 데이터

事物인터넷 : IOT // 한국사물인터넷협회

->융합기술(스마트+빅데이터)


스마트 : 유비쿼터스진행형 [백색가전제어, 로봇*드론 조작]
빅데이터 : 통계분석 [센서,기타 데이터 창출매체와 인터넷연결]

<이동통신규격>


\ 웹페이지 \
HTML에 의해서 구조가 잡히고, CSS에 의해서 꾸며지고, Flash/Java Script(JQeury)에 의해서 동적으로 반응


CLI - Command Line Interface    (cd..// cd [ ] )

[dir - dos 기반 CLI에서 현재 폴더의 리스트를 출력]


GUI - Graphic User Interface



자바를 이용해서 프로그램을 개발하시려면, 자바 개발환경을 갖추고(JDK),
 적절한 자바 개발환경을 셋팅

Java SE Development Kit (JDK) - 제작 > JRE - 실행


환경변수에 경로등록

해당 경로에 있는 파일들이 어디서나 실행가능하도록 등록 

[C:\Program Files\Java\jdk1.8.0_73\bin]


내컴퓨터 속성 고급시스템 / 고급탭 - 환경변수 - 아래박스

Path 변수값 찾아서 더블클릭

맨 뒤에 : 추가 하고 자바 경로를 붙여놓고 확인 


(EX)


java 프로그램 개발 단계

어셈블리어 [ ADD연산 3 5 - 00 0011 0101

MULT연산- 10

SUBT연산 - 01

    DIV연산 - 11                ]


컴파일(러.javac) - 사람이 프로그래밍 언어의 문법에 맞춰 작성한 소스코드를 컴퓨터가 

실행가능한 기계언어로 번역, 번역된 기계어를 

자바가상머신(클래스 적재기, 바이트 코드 검증기)에 투척하면 프로그램이 실행됨



통합 개발 환경( integrated development environment)  - IDE


++이클립스++









' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글

Day 06 复习  (0) 2016.03.21
Day 05 if/while  (0) 2016.03.18
Day 04 변수  (0) 2016.03.17
Day 03 영역  (0) 2016.03.16
Day 02 메소드  (0) 2016.03.15

+ Recent posts