전체 글 70

[JAVA]기본형 매개변수와 참조형 매개변수

기본형 매개변수와 참조형 매개변수 ▶ 기본형 매개변수 – 변수의 값을 읽기만 할 수 있다.(read only) ▶ 참조형 매개변수 – 변수의 값을 읽고 변경할 수 있다.(read & write) 예9) //기본형 매개변수 public class PrimitiveParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; // 참조변수 d를 통해 x에 10 저장 System.out.println("main() : x=" + d.x); change(d.x); // x의 값을 change에 복사 System.out.println("After change(d.x)"); System.out.println("main():x=" +..

[JAVA] 호출 스택(call stack)

JVM메모리 구조 ▶ 메서드영역(Method Area) - 클래스 정보와 클래스변수가 저장되는 곳 ▶ 호출스택(Call Stack) - 메서드의 작업공간. 메서드가 호출되면 메서드 수행에 필요한 메모리공간을 할당받고 메서드가 종료되면 사용하던 메모리를 반환한다. ▶ 힙(Heap) - 인스턴스가 생성되는 공간. new연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성된다. -메서드가 호출되면 수행에 필요한 만큼의 메모리를 스택에 할당받는다. -메서드가 수행을 마치고 나면 사용했던 메모리를 반환하고 스택에서 제거된다. -호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드이다. -아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다. 예7) public class CallStackTest {..

[JAVA] return문

1. return문 return문은 형재 실행 중인 메서드를 종료하고 호출한 메서드로 되돌아간다. 반환값의 유무에 관계없이 모든 메서드에는 적어도 하나의 return문이 있어야한다. 반환타입이 void인 경우, return문 없이도 아무런 문제가 없던 이유는 컴파일러가 메서드의 마지막에 'return;'을 자동적으로 추가해줬기 때문이다. public class ReturnEx { public static void main(String[] args) { MyMath2 mm = new MyMath2(); mm.printGugudan(3); } } class MyMath2 { void printGugudan(int dan) { if (!(2

[JAVA]메서드

1.메서드 메서드란? -수학의 함수와 유사 - 작업을 수행하기 위한 명령문의 집합 - 어떤 값을 입력받아서 처리하고 그 결과를 돌려준다. (입력받는 값이 없을 수도 있고 결과를 돌려주지 않을 수도 있다.) ▶ 메서드의 장점과 작성지침 - 반복적인 코드를 줄이고 코드의 관리가 용이하다. - 반복적으로 수행되는 여러 문장을 메서드로 작성한다. - 하나의 메서드는 한 가지 기능만 수행하도록 작성하는 것이 좋다. - 관련된 여러 문장을 메서드로 작성한다. 이렇게 코드가 중복되면 아래처럼 printArr이라는 메서드로 만들어서 증복을 제거한다. static int showMenu() {//나중에 내용을 완성한다} static voin inputRecord() {//나중에 내용을 완성한다} static void c..

[JAVA] 변수와 메서드-변수

1. 선언 위치에 따른 변수의 종류 변수는 클래스변수, 인스턴스변수, 지역 변수 3종류가 있다. 변수의 종류를 결정짓는 중요한 요소는 '변수의 선언된 위치'다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스 변수다. iv,cv는 클래스 영역에 선언되어 있으므로 멤버변수다. 그 중 cv는 키워드 static과 함께 선언되어 있으므로 클래스 변수이며, iv는 인스턴스 변수다. 그리고 lv는 메서드인 method()의 내부, 즉 '메서드 영역'에 선언되어 있으므로 지역변수다. ▶ 인스턴스변수(instance variable) - 각 인스턴스의 개별적인 저장공간. 인스턴스마다 다른 값 저장가능 - 인스턴스 생성 후, ‘참조변수.인..

[JAVA] 클래스의 또 다른 정의

클래스의 또 다른 정의 클래스는 객체를 생성하기 위한 틀 클래스는 속성(멤버변수)와 기능(메서드)로 정의되어 있다. 1. 클래스 – 데이터와 함수의 결합 ▶ 변수 – 하나의 데이터를 저장할 수 있는 공간 ▶ 배열 – 같은 타입의 여러 데이터를 저장할 수 있는 공간 ▶ 구조체 – 타입에 관계없이 서로 관련된 데이터들을 저장할 수 있는 공간 ▶ 클래스 – 데이터와 함수의 결합(구조체+함수) ->클래스 : 서로 관련된 변수들을 정의하고 작업을 수행하는 함수들을 함께 정의한 것 2. 클래스 –사용자 정의 타입(user-defined type) -프로그래머가 직접 새로운 타입을 정의할 수 있다. - 서로 관련된 값을 묶어서 하나의 타입으로 정의한다. 제한 조건 1. 시, 분, 초는 모두 0보다 크거나 같아야한다...

카테고리 없음 2021.06.18

[JAVA] 객체 배열

객체 배열 객체 배열==참조변수 배열 객체 역시 배열로 다룰 수 있다. 객체 배열 안에 객체의 주소가 저장된다. 참조변수 여러 개 묶어서 하나의 배열로 다룬다. 길이가 3인 객체 배열 tvArr을 생성. 각 요소는 참조변수의 기본값인 null로 초기화. 3개의 객체의 주소를 저장할 수 있다. 객체 배열을 생성했지만(참조변수들이 만들어짐) 아직 객체가 저장되지 않았다. 객체를 생성해서 객체 배열의 각 요소에 저장해야한다! *참조변수 배열만 생성해주고서 (참조변수만 만들어짐 )참조변수를 만들어서 객체를 따로 하나씩 넣어줘야한다. 객체배열을 만들었다고해서 객체들이 자동으로 만들어지는 것이 아니다. 넣어줘야한다. 배열의 초기화 블럭 사용 다뤄야할 객체 수가 많을 때는 for문을 사용 예4) //객체 배열 pub..

[JAVA] 인스턴스 의 생성과 사용

인스턴스 의 생성과 사용 Tv클래스를 작성한 것은 설계도만 작성한 것이므로 Tv인스턴스를 생성해야 제품(Tv)를 사용할 수 있다. 예1) public class Tv { // Tv의 속성(멤버변수) String color; // 색상 boolean power; // 전원상태(on/off) int channel; // 채널 // Tv의 기능(메서드) void power() { power = !power; } // Tv를 끄거나 키는 메서드 void channelUp() { ++channel; } // Tv채널을 높이는 메서드 void channelDown() { --channel; } // Tv채널을 낮추는 메서드 } class TvTest { public static void main(String[] a..

카테고리 없음 2021.06.18

[JAVA] 객체와 인스턴스

1. 객체와 인스턴스 객체(object): 모든 인스턴스를 대표하는 일반적 용어 인스턴스(instance): 특정 클래스로부터 생성된 객체(예: Tv인스턴스) 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화라고 하며, 어 떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 설계도 클래스를 가지고 제품 인스턴스(객체)를 만드는 것을 인스턴스화라고 한다. 예를 들어, '책상은 책상 클래스의 인스턴스'다 라고 하는 것이다. 2. 객체의 구성 요소-속성과 기능 ▶ 객체는 속성과 기능으로 이루어져 있다. - 객체는 속성과 기능의 집합이며, 속성과 기능을 객체의 멤버(member, 구성요소)라고 한다. ▶ 속성은 변수로, 기능은 메서드로 정의한다. - 클래스를 정의할 때 객체의 속성은 변수로, 기..

[JAVA] 클래스와 객체

클래스와 객체의 정의와 용도 클래스란 '객체를 정의해놓은 것' , '객체의 설계도 또는 틀' 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된대로 생성된다. ▶ 클래스의 정의 – 클래스란 객체를 정의해 놓은 것이다. ▶ 클래스의 용도 – 클래스는 객체를 생성하는데 사용된다. ▶ 객체의 정의 – 실제로 존재하는 것. 사물 또는 개념. ▶ 객체의 용도 – 객체의 속성과 기능에 따라 다름. 클래스 객체 제품 설계도 제품 TV설계도 TV 붕어빵기계 붕어빵 Tv클래스 설계도