Java 73

[예제] 객체 지향

1. 교통 수단(버스, 지하철 이용) John님의 남은 돈은 7500원입니다. Kelly님의 남은 돈은 7000원입니다. Harry님의 남은 돈은 10000원입니다. 버스 100번의 승객은 1명이고, 수입은 1000원입니다. 2호선의 승객은 1명이고, 수입은 1500원입니다. 7호선의 승객은 2명이고, 수입은 3000원입니다. public class Student { // 멤버 변수 String name; int money; // 생성자 public Student(String name, int money) { this.name = name; this.money = money; } public void takeBus(Bus bus) { this.money -= 1000; bus.take(1); } publ..

Java 2022.05.25

멤버 변수

멤버 변수는메소드 밖에서 선언된 변수를 말한다. 메소드 안에서 선언된 변수는 지역 변수라 한다. 멤버 변수의 구성 [public/private/protected] [static/final] 변수 타입 변수명; 멤버 변수 선언 int a; public int b; private MyClass myclass; 선언과 초기화, 생성을 같이 할 수 있는데 다음과 같다. public int b=0; private MyClass myclass = new MyClass(); 접근 제어 한정자 Access control modifier - 멤버 변수 public :: 모든 클래스에서 접근 가능하다 private :: final은 한 번 선언되면 변경이 불가능하다. protected :: public과 default의 ..

Java 2022.05.24

객체 지향

p242-249 정리 객체 배열 많은 수의 객체를 배열로 다루면 편리하다. 이를 객체 배열이라 한다. 그렇다고 객체 배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장된다. 객체 배열은 참조 변수들을 하나로 묶은 참조 변수 배열인 것이다. TV tv1, tv2, tv3 ↓ TV[] tvArr = new TV[3]; 길이가 3인 객체 배열 tvArr을 위와 같이 생성하면 각 요소는 참조 변수의 기본 값인 null로 자동 초기화 된다. 그리고 이 객체 배열은 3개의 객체 주소를 저장한다. 객체 배열을 생성하는 건, 그저 객체를 다루기 위한 참조 변수들이 만들어진 것일 뿐, 아직 객체가 생성되지 않았다. 객체를 생성해서 객체 배열의 각 요소에 저장해야 한다. 객체 배열만 생성해서 에러가 발생하는 게 ..

Java/정석 2022.05.24

자바 은닉화: 캡슐화 encapsulation

캡슐화는 변수와 클래스를 하나로 묶는 작업이다. 캡슐화의 중요 목적은 중요한 데이터를 보존, 보호하기 위해 사용한다. 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하게 막고 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 이렇게 접근을 제한함으써 유지보수나 확장 시 오류의 범위를 최소화 할 수 있고 객체 내의 정보 손상과 오용을 방지하고 데이터가 변경되어도 다른 객체에 영향을 주지 않아 독립성이 좋다. 캡슐화 방법 1. 멤버 변수에 접근 제어자 private를 붙인다. (private: 자기 클래스에서만 접근 할 수 있는 것) 2. 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만든다. (set/get 이용해 메소드를 만든다) 123 jay public class Sc..

Java 2022.05.24

함수 호출 방식 call by value, call by reference

call by value : 값에 의한 호출 : 메소드로 인자 값을 넘길 때 그 값을 복사해 넘기는 형태 : 메소드 호출 시 메소드 내에서는 복사 된 값으로 작업을 하기 때문에 원래의 값을 변경시키지 않는다. call by reference : 참조에 의한 호출 : 메소드로 인자 값을 넘길 때 그 객체를 참조하는 주소를 넘겨주는 형태 : 메소드 내에서도 원래의 값에 접근해 변경 가능하다. Call by value 인자 값으로 기본 형 사용 before num1 = 10 num2 = 20 after num1 = 10 num2 = 20 static void swap(int num1, int num2) { int temp; // 자리 바꾸기 temp = num1; num1 = num2; num2 = temp;..

Java 2022.05.21