지역변수 : 메소드내에서 생성하는 변수 -> 메소드 종료시 사라짐, 스택영역에 생성됨.






멤버변수(필드) = 인스턴스변수 : 클래스 내부에 정의, 해당 클래스가 객체화 될때마다 각 객체내에 생성됨, 

  해당 객체가 소멸될때 같이 사라짐.







정적변수 = 클래스변수 : 모든객체를 통틀어서 하나만 있는변수 , 해당클래스로 객체를 하나도 안만들었어도 1개만 존재하고 

객체를 계속 만들어도 1개만 존재. 클래스 내부에 static 키워드를 포함해서 정의하며, 프로그램이 실행될때 생성되서, 

프로그램이 종료될때 사라짐.





public static int numberOfCars; //  private static int numberOfCars;






정적메소드의 활용용도 - > 정적변수에 대한 게터,세터를 만들거나 객체의 상태와 상관없는 동작을 수행하는 메소드를 정의할때 사용.

                                       정적 함수에서는 멤버변수에 접근할수 없음.





toString이 우리가 만들지 않아도 원래 존재함, 해당 객체가 문자열화 될때 어떻게 문자열로 바뀔지를 결정하는 기능, 이미 존재하지만 똑같은 이름으로 toSring을 다시 만들어주면, 해당 객체가 문자열화 될때 우리가 정의한 내용에 맞게 문자열됨.


finalize도 원래 존재함, 객체가 소멸되기 직전에 호출되는 메소드, 우리가 똑같은 이름으로 다시 정의하면 해당객체가 소멸될때 우리가 정의한 함수내용을 실행함.


System.gc();

System.runFinalization(); // 가비지컬렉터를 강제로 일시키기 (사용x)


this : 자기 자신을 참조하는 키워드







//* 곱셈 실수부 -> (a*c) - (b*d)    나눗셈 실수부 ->(a*c)/(c*c+d*d) + (b*d)/(c*c+d*d)

   곱셈 허수부 -> (a*d) + (b*c)    나눗셈 허수부 ->(a*d)/(c*c+d*d) - (a*d)/(c*c+d*d) *//

 






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

Day 14 형변환 , 추상클래스  (0) 2016.03.31
Day13 상속  (0) 2016.03.30
Day11  (0) 2016.03.28
Day10 public/private  (0) 2016.03.25
Day09 객체지향  (0) 2016.03.24

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




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

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

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

+ Recent posts