목록전체 글 (210)
개발의 시작과 끝
생활코딩 19 - 유효범위 유효범위 전역변수(Global Variable) 함수 외부에서 선언된 변수로, 프로그램 전체에서 접근할 수 있는 변수. 전역변수는 프로그램의 시작과 동시에 메모리 공간에 할당되어서 프로그램이 종료될때까지 존재한다. 또한 지역변수와는 다르게 별도의 값으로 초기화하지 않으면 0으로 초기화된다. 지역변수(Local Variable) 함수 내부에서 선언된 변수로, 함수가 실행되면 만들어지고 함수가 종료되면 소멸하는 변수이다. 함수 외부에서는 접근할 수 없는 변수이다. class Main { static int i = 5; // 전역 변수 static void a() { int i = 10; // 지역 변수 b(); } static void b() { System.out.println(..
생활코딩 13 - 배열 배열(Array) 배열은 연관된 데이터를 모아서 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 저장하기 위한 것이다. 배열 선언에서 [ ]는 방 번호를 뜻하고 index라고 한다. 자바에서 index는 0부터 시작한다. 배열 예제 배열에 담겨있는 데이터를 꺼내오는 방법 class Main { public static void main(String[] args) { String[] classGroup = {김1, 김2, 정1, 정2}; System.out.println(classGroup[0]); System.out.println(classGroup[1]); System.out.println(classGroup[2..
생활코딩 10 - 조건문 조건문 if ( ) { } 조건문은 if로 시작한다. if 뒤의 괄호를 if 절이라고 부르며, 중괄호가 감싸고 있는 구간을 then절이라고 부른다. if 절의 값이 true 일 때 then 절이 실행된다. 반대로 if 절이 false 이면 then 절은 실행되지 않는다. else { } if만으로는 좀 더 복잡한 상황을 처리하는데 부족하다. 이때 else를 쓰는데 if가 false일때 else가 실행된다. ex) true인 경우 : if ( true ) → { } false인 경우 : if ( false ) {} → else { } else if ( ) { } else if 절을 이용하면 조건문의 흐름을 좀 더 자유롭게 제어할 수 있다. if 절의 값이 ture라면 then 절이..
a9A - 11일차 영역 힙 영역(Heap Area) 힙 영역에는 코드에서 'new'명령을 통해 생성된 인스턴스 변수가 저장되는 영역이다. 어떤 메서드인지는 상관이 없으며 new를 통해 만들어지는 메모리는 모두 힙 영역에 저장된다. 스택 영역에 저장되는 지역변수, 매개변수와는 달리 힙 영역의 메모리는 메소드 호출이 끝나도 가비지 컬렉터에 의해 지워지기 전까지는 사라지지 않고 유지된다. 호출이 되지 않거나 주소를 잃어버리면 가비지 컬렉터가 변수를 지운다. 스택 영역(Steck Area) 스택 영역은 함수 호출 시 생성되는 지역변수와 매개변수가 저장되는 영역이다. 스택 영역에 있던 변수들은 함수 호출이 완료되면 사라진다. 지역변수와 매개변수의 특징은 이 것들이 선언된 그 블록 안에서만 유효한 변수이며 이 변..
생활 코딩 8 - 연산자 연산자 연산자(operator)란 특정한 작업을 하기 위해서 사용하는 기호를 의미한다. 작업의 종류에 따라서 대입 연산자, 산술 연산자, 비교 연산자, 논리 연산자 등이 있다. 산술 연산자 수학적인 계산에 사용되는 연산자 + : 더하기 - : 빼기 * : 곱하기 / : 나누기 % : 나머지 형변환 예제 정수와 실수를 연산 했을 때 int a = 10; int b = 3; float c = 10.0F; float d = 3.0F; System.out.println(a/b); // 정수/정수 출력 : 3 System.out.println(c/d); // 실수/실수 출력 : 3.333333 System.out.println(a/d); // 정수/실수 출력 : 3.333333 정수와 정..
생활코딩 6 - 상수의 데이터 타입 상수 변하지 않는 값. 고유한 값을 가지고 있고, 그 값을 변경할 수 없는 데이터 타입을 상수라고 한다. ex) 1, 20, 300 상수와 데이터 타입 실수 표현 double a = 2.2 => 2.2 float a = 2.2F => 2.2 / 여기서 F는 float형 이라는 것을 분명하게 명시해준 것이다. 정수 표현 int a = 2147483648 => int의 최대값인 2147483647 보다 1많기 때문에 오류가 난다. long a = 2147483648L => 2147483648 / 상수와 상수를 담을 변수도 long타입이 된 것이다. long타입이라는 것을 명시해주기 위해 상수 뒤에 L을 붙여준다. byte a = 100; , hort b a = 200; /..
생활코딩 5 - 데이터 타입 데이터 크기 8 bit (비트) 1 byte 1024 byte (바이트) 1 kilobyte 1024 kilobyte (킬로바이트) 1 megabyte 1024 megabyte (메가바이트) 1 gigabyte 1024 gigabyte (기가바이트) 1 terabyte 1024 terabyte (테라바이트) 1 petabyte 1024 petabyte (페타바이트) 1 exabyte 1024 exabyte (엑사바이트) 1 zettabyte 데이터 타입의 종류 정수형 데이터 타입 메모리의 크기 표현가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648 ~ 2,147,483,647 ..
a9A - 9~10일차 상속을 통한 캐스팅 허용 class 무기 { } class 칼 extends 무기 { void 공격() { System.out.println("칼로 공격합니다"); } 무기 a무기 = new 칼(); a무기.공격(); // 출력 : x 칼을 작동시키는 것 a무기는 리모컨으로 원격조종을 하게 된다. a무기에는 '칼' 객체가 생성된다. 그러면 칼이 공격하기 때문에 칼에 공격 메서드가 들어간다. 하지만 칼에 공격 메서드가 있음에도 불구하고 작동하지 않는 이유는 물려받은 '무기' 메서드에 '공격' 메서드가 없기 때문이다. -> 기능은 있는데 호출할 수있는 버튼이 없다. class 무기 { //메서드의 용도 - 기능, 버튼 void 공격(){ } } class 칼 extends 무기 { v..