본문 바로가기

전체 글395

4월 12일 (2) Java - 객체지향 객체지향 프로그래밍 (Object Oriented Programming, OOP) 기능을 제공하는 명령어들을 묶어서(객체화) 작성하고 다른 명령어 묶음과 연계하여 구현하는 프로그래밍 방식 객체 = 정보 + 기능 = 필드(멤버 변수) + 메소드 객체는 속성과 동작으로 구성, 자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부른다. 객체 간의 관계 집합관계 사용관계 상속관계 객체 지향의 특성 1. 캡슐화(Encapsulation) : 필드와 메소드를 하나로 묶고 실제 구현 내용을 숨김 -> class를 만드는 작업 정보은닉(Informaiton Hiding) : 접근제어자를 사용하여 객체 내부의 정보를 숨김 2. 상속(Inheritance) : 부모의 특성을 그대로 물려받고 새로운 것을 추가하는 것 ->.. 2023. 4. 12.
1068. 정수 1개 입력 받아 평가 출력하기 점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자. 평가 기준 점수 범위 : 평가 90 ~ 100 : A 70 ~ 89 : B 40 ~ 69 : C 0 ~ 39 : D 로 평가되어야 한다. 참고 여러 조건들을 순서대로 비교하면서 처리하기 위해서 조건문을 중첩할 수 있다. 만약, 순서대로 검사하고 실행하기 위해 아래와 같이 중첩 시킨다면, if(조건1) { ... } else { if(조건2) { ... } else { ... } } 중첩된 구조는 논리적으로 1단위이기 때문에 코드블록 기호를 생략하면 아래와 같은 구조로 다시 표현될 수 있다. if(조건1) { ... ; } else if(조건2) { ... ; } else { ...; } 이와 같이 조건을 계속 붙여나가면.. if(조건1) { .... 2023. 4. 12.
4월 12일 (1) Java - 데이터 관리 프로그램 통합개발환경 (IDE, Integrated Development Environment) 코드 편집기 + 컴파일러(빌더) + 디버거(Debugger) 디버거 : 프로그램 버그를 잡기 위한 도구, 디버깅을 위한 도구 버그 - 논리적인 오류(1+1이 2가 나오지 않는 현상) 디버깅 - 코드를 한줄 씩 실행하여 그 때 그 때의 결과를 확인하면서 로직의 오류를 찾고 수정하는 과정 모든 프로그래밍 언어는 디버깅이 필요하다. 브레이크 포인트 : 일시정지, 바이트코드로 실행 코드를 처리하고 있는 내용적인 모습을 볼 수 있다. 파란색은 실행되지 않은 부분을 나타낸다. 스킵 F8, 진입 F7 : 메서드 내용확인, 메서드 벗어나기(점프) shitf + F8, 커서에서 멈추기 기본데이터 타입은 값을 볼 수 있다, 인스턴스의 .. 2023. 4. 12.
4월 11일 (2) Java - 변수 용어, 저장 위치 변수 용어 정리 1. 지역변수 : 메소드 내부에 작성된 변수, 메소드 호출 시 생성되었다가 메소드 종료 시 제거된다. 다시 호출되면 새롭게 다시 생성 2. 매개변수 : 메소드에서 파라미터를 받기 위한 지역 변수. 지역변수와 같음. 3. 참조변수 : 인스턴스의 주소를 저장하는 변수. 예) String, Class에 만들어진 변수 4. 멤버변수 : 클래스 내부, 메소드 외부에 작성하는 변수, 한 클래스의 모든 메소드에서 사용이 가능(전역) 객체 = 멤버변수 + 메소드 5. 인스턴스 (멤버)변수 : 멤버변수면서, static이 붙지 않는 변수. (인스턴스 생성 후부터 존재하는 변수) 필드와 같은 말 6. 필드 : 인스턴스 변수를 지칭하는 다른 말 7. 스태틱 (멤버)변수 : 멤버변수이면, static이 붙는 .. 2023. 4. 11.
4월 11일 (1) Java - 배열, 리스트 배열 1차원배열 - [1,2,3,5,6,...., n] 다차원 배열 2차원 배열 선언) 동일한 타입으로 만들어진다. 자료형 배열명[][] = new 자료형[줄개수][칸개수]; 예) int [2][3] 공간 구성 0.0 0.1 0.2 1.0 1.1 1.2 배열의 구조적 문제로 인해서 효율성이 떨어진다. 배열의 구조적 문제 (크기 변경이 불가) -> ArrayList 객체를 활용 리스트(List) 구조 객체 - ArrayList 배열의 구조적 한계(크기 변경 불가 등)로 활용율이 떨어짐 대신 ArrayList를 주로 활용 ArrayList는 크기가 가변적이기 때문에 효율적이다. ArrayList 배열 형태의 목록 객체 -> 인스턴스 만들어서 사용해야 한다. 크기 변경이 자유로움 선언) ArrayList 목록.. 2023. 4. 11.
1067. 정수 1개 입력 받아 분석하기 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자. 참고 조건/선택 실행 구조의 안에 조건/선택 실행 구조를 다시 "중첩"할 수 있다. 이는 "중첩(nested)"의 원리가 적용되는 내용으로 아래와 같은 구조가 가능하다. if(조건1) { if(조건2) //조건문의 중첩 { ... } else { ... } } else { if(조건2) { ... } else { ... } } 위와 같은 조건/선택 실행구조는 조건/선택 실행구조를 중첩해 서로 다른 4가지(2가지*2가지)의 경우에 대해 다른 실행을 할 수 있도록 해준다. ** 어떤 조건들이 맞았을 때에는 해당부분의 코드블록 내용만 실행되고, 전체 조건/선택 실행구조를 빠져나간다. 즉, 다른 부분들은 실행되.. 2023. 4. 11.
1066. 정수 3개 입력 받아 짝/홀 출력하기 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자. 참고 if(조건) { //코드블록1 시작 ... 실행...; ... } else { //코드블록2 시작 ... 다른실행...; ... } 의 조건/선택 실행구조는 주어진 “조건”을 검사해 참인 경우에는 코드블록1을 실행하고, 거짓인 경우에는 코드블록2를 실행한다. 예시 if(a%2==0) { printf(“even”); } else { printf(“odd”); } ** else는 if 없이 혼자 사용되지 않는다. 또한, else 다음에 조건이 없는 이유는? 참이 아니면 거짓이고, 거짓이 아니면 참이기 때문에... 즉 if문의 조건식의 판별 결과는 2가지 경우(참 또는 거짓)로 계산되는데, else 부분은 if문의 조건식의.. 2023. 4. 10.
4월 10일 (2) Java - 참조 변수, 배열 참조(Reference) p144 -147 자바 프로그램의 실행 시 사용하는 메모리 영역의 구성 자바는 메모리 영역을 크게 Method영역, Call stack영역, Heap 영역으로 분할하여 사용 Method 영역 : class를 배치하는 영역(설계도 책상) 여기서 만들어지는 변수를 클래스(스태틱) 변수라고 함 heap 영역 : 생성한 Instance(인스턴스)를 배치하는 영역, 인스턴스가 배치되고 동작하는 공간 여기에 만들어지는 변수를 인스턴스 변수라고 함 Call Stack 영역 : 호출되는 메소드가 위치하는 영역, 기계어로 번역된 메서드(함수) 코드가 실행되는 영역 여기에 만들어지는 변수를 지역local 변수라고 함. p149 null(널) : 참조 변수에 값(인스턴스의 주소)이 저장되지 않은 상.. 2023. 4. 10.
4월 10일 (1) Java - 제어문 file 생성 src 오른쪽 버튼 클릭 > New 제어문 1. 조건(분기) 제어문 : if, switch 1) if 기본형 : if(조건식) {....} 조건식이 true일 때만 실행 2지 선다형 : if(조건식) {①....} else {②.....} 조건식이 true면 ①, false면 ②를 실행 다지 선다형 : if(조건식) {.....} else if(조건식2) {.....} ...... else {......} 2) switch case, default문과 조합 형식 : switch(표현식) { case : ...... } 표현식에 사용할 수 있는 것 : 정수, 문자(char), 문자열(String) import java.util.Random; public class DiceClass { pub.. 2023. 4. 10.
1065. 정수 3개 입력 받아 짝수만 출력하기 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자. 참고 if(조건) { //조건이 참일 때에만 실행되는 구역(코드블록의 시작) 실행1; 실행2; ... } //코드블록의 끝 의 조건/선택 실행 구조는 주어진 “조건”을 검사해 그 결과가 참인 경우에만 코드블록 안에 작성된 내용들을 순서대로 실행한다. 예시 if(a%2==0) { printf(“%d”, a); } if(b%2==0) { printf(“%d”, b); } if(c%2==0) { printf(“%d”, c); } ** a%2==0 은 a%2가 먼저 수행되고 그 결과를 0과 비교한 참/거짓 값을 계산한다. a%2==0의 의미는 a를 2로 나눈 나머지를 0과 비교한 결과 값(참/거짓)이다. 따라서, if(a%2 == 0) 는 “a가 짝수.. 2023. 4. 9.
Java - 데이터 타입 기본타입 값의 종류 기본타입 메모리 사용크기 저장되는 값의 범위 정수 byte 1byte 8bit -27~(27-1), -128 ~ 127 char 2byte 16bit 0~216-1유니코드 u\0000 ~ u\FFFF, 0~65535 shori 2byte 16bit -215~(2-15-1), -32,768 ~32,767 int 4byte 32bit -231~(231-1)-2,147,483,648 ~ 2,147,483,647 long 8byte 64bit -263 ~(263-1) 실수 float 4byte 32bit (+/-)1.4E-45 ~ (+/-)3.4028235E38 double 8byte 64bit (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 논리 boolean.. 2023. 4. 9.
Java - 변수(Variable) 변수(Variable) 하나의 값을 저장할 수 있는 메모리 공간 한 가지 타입의 값만 저장할 수 있다. 변수선언 타입 = 변수이름; 예) int = age; 변수이름은 메모리 주소에 붙여진 이름이다. 프로그램은 변수 이름을 통해서 메모리 주소에 접근하고, 그곳에 값을 저장하거나 그곳에 있는 값을 읽는다. 변수 작성규칙 첫 번째 글자는 문자이거나 $, _이어야 하고 숫자로 시작할 수 없다. 영어 대소문자가 구분된다. 첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(관례) 문자수의 제한은 없다. 자바 예약어는 사용할 수 없다. 변수값 저장 변수에 값을 저장할 때는 대입 연산자 = 사용한다. 우측의 값을 좌측 변수에 저장한다는 의미를 갖는다. 변수를 선언하고 처음 값을 저.. 2023. 4. 9.