반응형

JAVA/소설같은자바 59

MotorCycle m = new MotorCycle()

□ MotorCycle m = new MotorCycle(); ◇ MotorCycle : 새로운 사용자 정의 데이터 타입 ◇ m : MotorCycle 데이터 타입으로 선언한 참조 변수(객체 변수) ◇ new : 메모리를 생성하는 연산자, 참조값을 리턴한다. ◇ MotorCycle() : 메모리 생성 후 해당 메모리의 초기화 작업을 담당하는 생성자 □ 결론 ◇ 객체 변수는 참조 변수다. ◇ 객체의 이름은 참조값(Reference)이 할당되기 때문에 다른 참조값을 할당한다 하더라도 실제 객체에 연결된 내부의 메모리는 복사가 되지 않는다. 단순한 참조값에 대한 값복사가 이루어진다. ◇ 참조값만 가지고 있다면 해당 객체를 핸들할 수 있다. □ 메모리 차원의 객체 복사 기법 ◇ 객체의 실제 메모리를 복사하기 위..

참조 변수끼리의 할당

□ 참조를 증명하기 위한 클래스 1 2 3 4 5 6 7 8 9 10 11 12 public class MotorCycle { private int id; private int speed; public void setData(int i, int s){ id = i; speed = s; } public void drive(){ System.out.println("이 오토바이의 번호판은 " + id + " 입니다."); System.out.println("오토바이는 현재 " + speed + " Km 속도로 달립니다."); } } □ 메모리 없는 객체 m과 메모리 있는 객체 c의 생성 1 2 MotorCycle m = null; MotorCycle c = new MotorCycle(); □ 참조 변수끼리의 ..

참조 변수의 특징

□ 참조값(Reference Value) ◇ 참조값이란 객체의 메모리를 생성했을 때 메모리와 연결된 유일한 숫자값을 말한다. ◇ 이 숫자값을 참조 변수가 받으며, 자바에서는 참조값을 가지고 있으면 해당 객체를 핸들할 수 있다. ◇ 참조값으로 작업하면 내부에서 참조값에 연결된 메모리로 작업하는 것과 같은 효과가 있다. □ 'Sun s1 = null'의 의미 ◇ s1은 4바이트짜리 참조 변수가 만들어진 것이다. ◇ s1 자체는 4바이트의 메모리 생성의 의미를 담고 있다. ◇ s1은 현재 4바이트의 메모리에 null값이 들어 있다. ◇ s1에는 객체의 실제 메모리와 연결된 Sun형의 참조값을 넣을 수 있다. □ 참조값 할당 ◇ s1 = new Sun(); □ 's1.distance = 1000'의 의미 ◇ s..

객체의 메모리 생성

□ 클래스를 이용한 메모리의 생성 ◇ 클래스 데이터 타입으로 변수를 선언하고, 컴퓨터 내의 메모리 속에 데이터 타입에 해당하는 만큼의 메모리를 확보하는 일 □ 객체(Object) ◇ 클래스로 변수를 만들었을 때 일반적인 기본 데이터 타입의 변수와 구별하기 위해서 객체 또는 객체 변수라고 한다. □ new 연산자 ◇ 객체의 메모리를 생성시켜 주는 역할을 담당 ▒ 이름만 가진 객체 1 Top t; ▒ 이름과 메모리를 가진 객체 1 Top t = new Top();

private 멤버 필드를 사용하는 이유

□ 가정 ◇ 사과를 private 위라는 공간에 넣는다고 가정 □ 위험한 방법 ◇ 사과를 위에 직접 할당하는 방법 □ 올바른 방법 ◇ 사과를 먹다()라는 메서드를 통해서 분해해서 할당하는 방법 □ private 멤버의 역할을 증명하는 클래스 1 2 3 4 5 6 7 8 9 class Human{ private 소화기관 위; public void 먹다(음식 x){ //x를 가공해서 위에 할당한다. } public 찌꺼기 소화(){ //위에 있는 내용물을 찌꺼기로 리턴한다. } } □ private 멤버 변수의 사용 ◇ 자료를 보호하기 위해서 ◇ 내부적으로만 사용하기 위해서

private의 사용 이유

□ private을 사용하는 이유에 대한 3가지 질문 ◇ private 멤버 메서드도 있을까? ◇ private 멤버 변수에 접근하는 방법이 public 메서드밖에는 없을까? ◇ private 멤버 변수를 왜 사용할까? □ private 멤버 메서드도 있을까? ◇ 있다. □ private 멤버 변수에 접근하는 방법이 public메서드밖에는 없을까? ◇ 없다. □ private 멤버 메서드를 왜 사용할까? ◇ 해당 클래스 내부에서만 사용 가능하다.

private에 접근하는 방법

□ private 멤버에 접근하는 방법 ◇ public 멤버 메서드의 매개변수(Parameter)를 통해서 private 멤버에 값을 할당 ◇ public 멤버 메서드의 리턴(Return)을 통해서 private 멤버의 값 내보내기 ◇ 이 때 매개변수와 리턴값이 할당되는 원리는 값복사의 기법을 이용한다. □ public 메서드를 이용한 private 멤버 변수의 접근 § chap03\TopSecret.java 1 2 3 4 5 6 7 8 9 10 11 public class TopSecret{ private int secret; //private 멤버 변수 선언 //private 멤버에 값 할당하기 public void setSecret(int x){ //private에 접근하는 public 멤버 메서드..

private의 접근과 컴파일 에러

□ 접근 지정자(Access Identifier)의 종류 ◇ private ◇ public ◇ protected □ private 멤버의 접근 ◇ private 멤버에 직접 접근할 수 없다. ◇ private 멤버에 접근하기 위해서 public 메서드를 이용한다. □ private 멤버 변수를 포함한 클래스 1 2 3 4 5 public class Person { public int age; //public 멤버 변수 선언 public float height; //public 멤버 변수 선언 private float weight; //private 멤버 변수 선언 } □ private 에 직접 접근하기 때문에 에러가 발생하는 예 1 2 3 4 5 6 7 8 9 10 11 public class Priva..

반응형