◎ Java/Java☕

    [JAVA] 기본형 매개변수와 참조형 매개변수 [메서드 파라미터에 복사되는 값의 차이]

    - 기본형 매개변수와 참조형 매개변수 자바에서 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사하여 넘겨준다. → 매개변수 타입이 기본형일 때는 기본형 값이 복사, 참조형이면 인스턴스의 주소가 복사된다. - ParamEx.java : 매개변수가 기본형일 경우 public class ParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); change(d.x); // d.x는 기본형인 int 타입이다. System.out.println("After change(d.x)"); System.out.println("main() :..

    [JAVA] 메서드(method)를 사용하는 이유 [높은 재사용성, 중복된 코드의 제거, 프로그램의 구조화]

    1. 메서드(method)란? 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 메서드는 어렵게 생각할 것 없이, 넣을 값(입력)과 반환하는 결과(출력)만 알면 된다. 2. 메서드를 사용하는 이유 1) 높은 재사용성(reusability) 한번 만들어 놓은 메서드는 몇 번이고 호출할 수 있으며, 다른 프로그램에서도 사용이 가능하다. 2) 중복된 코드의 제거 반복되는 문장들을 묶어서 하나의 메서드로 작성해 놓으면, 메서드를 호출하는 한 문장으로 대체할 수 있다. 3) 프로그램의 구조화 큰 규모의 작업을 여러 개의 메서드에 담아 프로그램의 구조를 단순화 시킬 수 있다. 참고문헌 : 남궁성(2016), Java의 정석, 도우출판

    [JAVA] 선언위치에 따른 변수의 종류 [인스턴스변수, 클래스변수, 지역변수]

    - 선언위치에 따른 변수의 종류 변수의 종류를 결정짓는 요소는 '변수의 선언된 위치'이다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수다. /* 클래스 영역 */ class Variables { int iv; // 인스턴스변수 static it cv; // 클래스변수(static변수, 공유변수) /* 메서드 영역 */ void method() { int lv = 0; // 지역변수 } } 변수의 종류 선언위치 생성시기 클래스변수 (class variable) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스변수 (instance variable) 인스턴스가 생성되었을 때 지역변수 (local variable) 클래스 ..

    [JAVA] 사용자정의 타입(user-defined type)이란? [클래스, 객체지향적 코드]

    - 사용자정의 타입, 클래스 사용자정의 타입(user-defined type)은 기본자료형 외에 프로그래머가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 말한다. 자바와 같은 객체지향언어에서는 클래스가 곧 사용자 정의 타입이다. int hour; // 시간을 표현하기 위한 변수 int minute; // 분을 표현하기 위한 변수 float second; // 초를 표현하기 위한 변수(1/100초까지 표현하기 위해 float) 만일 3개의 시간을 다뤄야 한다면 다음과 같이 해야한다. int hour1, hour2, hour3; int minute1, minute2, minute3; float second1, second2, second3; /* 배열로도 처리 가능 */ int[] hou..

    [JAVA] 객체 배열이란? [참조변수들을 하나로 묶은 참조변수 배열]

    - 객체 배열 객체 역시 배열로 다루는 것이 가능하며, 이를 '객체 배열'이라고 한다. // 객체 배열 안에는 객체가 아닌, 객체의 주소가 저장이 된다. // 즉, 객체 배열은 참조변수들을 하나로 묶은 '참조변수 배열'이다. Tv tv1, tv2, tv3; // 아래처럼 배열로 만들 수 있다. Tv[] tvArr = new Tv[3]; // 길이가 3인 Tv타입의 참조변수 배열 객체 배열을 생성하는 것은 객체를 다루기 위한 참조변수들을 만든 것일 뿐, 객체가 저장되어있지는 않다. 따라서 객체 배열 생성 후, 추가적으로 객체를 저장해야 한다. Tv[] tvArr = new Tv[3]; // 참조변수 배열(객체 배열) 생성 // 객체를 생성해서 각 요소에 저장 (생성 시에는 모두 null 상태) tvArr[..