객체 지향 프로그램 SET, GET 메소드에서 갑자기 왠 객체 지향 프로그램이냐구요? 모든 프로그램이 그렇겠지만 외부로부터 변수값에 직접적으로 접근하는 것을 막고있습니다. 직접 접근하게 되면 무결성이 깨질 수 있기 때문입니다. 자바에서는 함수를 통해 값을 전달받고, 전달하고 방식을 권장하고 있습니다. 또한 클래스 내에서 변수는 private(캡슐화, 정보은닉)로 선언하여 외부에서 바라볼 수 없도록 해야 합니다. 아래에서 사용하는 방법과, 왜 사용을 해야하는지에 대해 알아보겠습니다. SET, GET 메소드를 사용하는 방법 클래스 내에 SET, GET 메소드를 선언합니다. SET 은 변수값을 할당하는 목적의 함수이기 때문에 인자를 받아야 하고 GET 은 변수값을 반환하는 목적이기 때문에 return 이 필요..
Computer Language
전 포스팅에서 클래스선언 / 클래스객체 생성 / 클래스변수 조회를 다뤄봤습니다. 클래스 변수에 값을 대입할 수 없으면 여러개의 객체에서 하나의 값만 조회할 수밖에 없습니다. 이번에는 클래스변수에 값을 대입하여 객체별로 서로 다른 변수를 사용하도록 해보려고 합니다. 클래스 변수에 값을 대입하기 위해서는, 생성한 객체에서 변수값을 입력해 주면 됩니다. 생성한 객체가 2개라면 같은 변수라고 하더라도 객체별로 다른 값을 사용할 수 있습니다. 메소드 또한 동일합니다. 클래스 내에서 선언한 함수는 객체에서 사용할 수 있습니다. 클래스 변수에 값 할당, 클래스 메소드 호출하는 코드 클래스 메소드 호출방법 1. 메소드를 호출하는 부분의 코드가 실행됩니다. 2. 메소드 내부로 흐름이 옮겨가고 메소드 내부의 코드가 실행됩..
클래스란 클래스는 프로그램을 효율적으로 작성하도록 도와주는 개념입니다. 모든 자바 소스는 클래스를 포함하고 있고, 반드시 하나 이상의 클래스가 존재해야 합니다. 클래스는 클래스가 표현하는 사물의 일반적인 요소에서 출발하는 것이 좋습니다. 예를들면 자동차의 경우 차량번호와 연료량을 항상 가지고 있어야 합니다. 이렇게 자동차의 특성과 기능들을 정리하여 하나의 클래스로 묶어서 표현할 수 있습니다. '차량 번호는 ㅇㅇㅇ입니다.' '남은 연료량은 ㅇㅇ입니다.' 1 2 3 4 5 6 7 8 9 class 자동차 { 차량번호; 남은연료량; 차량번호결정하기; 연료를 넣기; 차량번호와 남은연료 양을 표시하기 } cs 클래스 선언하기 물건의 상태 특성, 기능을 정리한 클래스를 작성하는 작업을 '클래스 선언' 이라고 합니다..
배열을 사용한 변수에서 크기 순으로 값을 정렬해 봅니다. 배열에는 여러 가지 정렬되지 않은 값을 저장할 수 있는데, 이럴 때 정렬을 사용하여 값을 순차적으로 표현하여 가독성을 높일 수 있습니다. ( 참고로 배열을 정렬하는 방법은 선택정렬, 버블정렬, 삽입정렬, 퀵정렬 등 여러가지가 있습니다. ) 예시로 학생이름순으로 성적을 입력 후, 성적을 내림차순 정렬하여 표현할 수 있습니다. 배열 정렬 방법 아래 코드는 선택정렬 방법입니다. 1. 배열의 각 요소를 배열의 첫 번째 요소(test[0])와 비교합니다. 비교한 요소가 배열의 첫 번째 요소보다 큰 경우, 첫번째 요소와 비교한 요소의 값을 교환 합니다. 이렇게 되면 배열의 첫 번째 요소에 최대 값을 저장할 수 있습니다. 2. 두 번째 배열요소부터 두 번째 요..
자바 배열변수에 배열변수 값을 대입하는 경우 선언된 배열변수를 새로운 배열변수에 = 기호를 사용하여 대입하는 경우 새로운 배열변수도 기존 배열변수와 같은값이 할당됩니다. 일반 변수라면, 기존의 변수 값을 변경해도 새로운 변수 값은 변경되지 않습니다. 그러나 배열변수는 조금 다릅니다. 기존과 새로운 배열변수는 같은 메모리 값을 바라보고 있습니다. 이 말은 하나의 배열변수만 수정해도 다른 배열변수의 값도 변경이 된다는 의미입니다. 자바 배열변수에 값을 대입하는 경우 예제 test2 배열변수에 test 배열변수 값을 할당합니다. 이제 test 와 test2 배열변수는 같은 메모리에 할당된 값을 바라보게 됩니다. 따라서 test 배열변수의 값을 변경해도, test2 배열변수의 값을 변경해도 모든 배열변수의 값이..
배열 요소의 개수가 동적이어서 코드 안에서 결정할 수 없는 경우가 있습니다. 이럴 때 배열 요소의 개수를 키보드로 입력받아서 배열크기를 결정할 수 있습니다. 자바 배열 길이 입력과 배열 길이 확인하는 방법 12줄 BufferedReader 객체를 사용하여 배열크기를 결정할 변수를 입력받아 num 변수에 저장합니다. 14줄 num 변수만큼의 test 배열변수 공간을 설정합니다. 16줄 length 함수를 사용하여 test 변수의 길이를 출력합니다. 20줄 배열변수에 값을 대입합니다. 24줄 배열변수 값을 출력합니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 import java.io.BufferedReader; i..
배열의 원리 프로그램 안에서 같은 속성의 많은 데이터를 처리해야 하는 경우가 있습니다. 예를들어 20명의 학생의 시험 점수를 기록하는 프로그램을 만든다고 하면, 일반적인 경우 20개의 변수를 사용해야 합니다. 그러나 배열을 사용하면 하나의 배열변수를 사용하여 구현할 수 있습니다. 즉, 배열이란 '같은 형의 값을 동시에 여러 개 기억하기' 입니다. 배열 준비하기 1. 배열을 다룰 변수를 준비합니다. ( 배열 선언 ) 배열 선언은 아래처럼 할 수 있습니다. 배열 변수만 선언했을 뿐, 아직 몇 개의 배열 저장공간을 사용할지는 안정해진 상태입니다. int [] 변수; 2. 값을 저장할 상자를 준비합니다. ( 배열 요소 생성 ) 배열 변수에 int 형 데이터를 5개 저장할 수 있는 공간을 생성하는 방법입니다. n..
while 문과 do-while 문의 차이점 while 문 조건이 참인 경우에만 문장을 실행합니다. 조건이 계속 참이라면 문장은 계속 실행하게 됩니다. 만약 첫 조건이 거짓인 경우 while 문은 실행되지 않습니다. while (조건) { 문장; } do while 문 조건이 거짓이더라도 적어도 한 번 문장은 실행됩니다. 이 후 조건이 참/거짓인지의 여부에 따라 문장을 계속 실행할지를 결정하게 됩니다. do { 문장; } while (조건); while 문의 위험성 While 문 무한루프 위험성 문장이 계속 참이 되게 되면, while 문단의 하위에 작성한 코드들은 실행되지 못하고 무한작업으로 인해 CPU 는 100% 로 증가할 수 있습니다. Whiile 문 무한루프 예제 i 는 항상 1 이고, 조건은 ..
반복문이란 코드에서 반복작업을 해야하는 경우 반복문(루프 문 : loop statement)으로 표현할 수 있습니다. 반복문에는 for문, while문, do-while문 3종류가 있습니다. for 문 for 문을 아래처럼 3개의 구성으로 되어 있습니다. for (초기화 식; 다시 반복할지 확인하는 식; 변화를 주기위한 식) 문장; for 문 예제 for 문으로 구구단 만들어보기 i 가 1 일 때, j 는 1부터 9까지 1씩 증가하며 아래의 출력문을 실행합니다. j 가 9까지 완료되면 i 값이 1증가 합니다. 이 후 다시 j 가 1부터 9까지 증가하며 아래의 출력문을 실행합니다. 1 2 3 4 5 6 7 8 9 10 11 12 public class ForTest { public static void m..
논리 연산자의 원리 이해 논리 연산자를 사용하여 조건절에 여러개의 조건을 사용할 수 있습니다. 예를들자면 a = 1 이고 b = 2 라면 .. 를 실행해라 같은 조건입니다. 논리 연산자를 사용하기 위해서는 아래 기호를 조건 사이에 작성해 주어야 합니다. 연산자 참이되는 경우 평가 왼쪽 오른쪽 전체 && 좌/우 모두 참인 경우 ( AND ) 거짓 거짓 거짓 거짓 참 거짓 참 거짓 거짓 참 참 참 || 좌/우 중 하나가 참인 경우 ( OR ) 거짓 거짓 거짓 거짓 참 참 참 거짓 참 참 참 참 ! 우변이 거짓인 경우 ( NOT ) 거짓 참 참 거짓 논리연산자를 사용한 IF 문 OR, AND 조건 사용하기 if 문에 논리연산자를 사용한 비교 조건을 사용하였습니다. || 는 또는, && 는 그리고를 의미합니다...