Burninghering's Blog
2-9.객체 지향 - 캡슐화
JAVA 2022. 1. 8. 20:03

정보 은닉을 활용한 캡슐화 꼭 필요한 정보와 기능만 외부에 오픈함 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공(public 메소드)하여 일관된 기능을 구현 하게 함 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 한다. 1. private 메서드들의 순서를 지키고, 그 메소드의 각각 내용을 클라이언트가 알 필요가 없으므로 private로 (hide=캡슐화) 접근 제어를 한 뒤, 2. public 메소드 하나를 제공해 놓고 메소드들의 순서를 정확하게 한 뒤 결과를 리턴함! (캡슐화의 한 가지 방식) --> 메서드나 필드를 외부에 공개할 것인가, 말것인가? --> 객체 지향에서 매우 중요! --> 어떻게 공개해서, 효율적으로, 오류 없이 객체를 사용할 것인가? Ma..

article thumbnail
2-8.객체 지향 - 접근 제어 지시자, 정보 은닉
JAVA 2022. 1. 8. 19:47

접근 제어 지시자(access modifier)와 정보은닉(infomation hiding) 1. 접근 제어 지시자 (accesss modifier) 클래스 외부에서, 클래스의 멤버 변수, 메서드, 생성자 사용 여부를 지정하는 키워드 private : 같은 클래스 내부에서만 접근 가능 ( 외부 클래스, 상속 관계의 클래스에서도 접근 불가 ) default(아무것도 없음) : 같은 패키지 내부에서만 접근 가능 ( 상속 관계라도 패키지가 다르면 접근 불가 ) -> 다른 패키지에서 쓰려면 import 해야함 protected : 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없음 public : 클래스의 외부 어디서나 접근 할 수 있음(모두 가능) 2. get()/ set()..

article thumbnail
2-7.객체 지향 - 참조 자료형 변수
JAVA 2022. 1. 8. 04:07

참조 자료형 변수의 자료형 클래스를 타입으로 변수 선언 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 할당되는 메모리가 다르다 String 클래스는 예외적으로 생성하지 않고 사용할 수 있다. 참조 자료형 정의하여 사용하기 학생이 수강한 과목들에 대한 성적을 산출하려고 하는데, 학생 클래스 속성에 모든 과목이 있으면, 모든 과목을 듣지 않은 학생들은 어떻게 할 것인가? 학생(Student)과 과목(Subject)에 대한 클래스를 따로 분리하고 -> Subject 클래스를 활용하여 수강한 과목들을 변수의 타입으로 선언 선언된 Subject 변수는 생성된 인스턴스가 아니므로, Student의 생성자 안에서 생성하여 사용 그러니까... 학생 클래스에, 참조 자료형으로 모든 ..

2-6.객체 지향 - 생성자 오버로딩
JAVA 2022. 1. 8. 00:54

여러가지 생성자를 정의하는 생성자 오버로딩(overloading) 생성자 정의 하기 생성자를 구현해서 사용할 수 있음 클래스에 생성자를 따로 구현하면 기본 생성자 (default constructor)는 제공되지 않음 생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음 디폴트 생성자와 생성자로 멤버 변수 초기화하기! UserInfo.java public class UserInfo { public String userId; public String userPassWord; public String userName; public String userAddress; public String phoneNumber; public UserInfo(){} //디폴트 생..

article thumbnail
2-5.객체 지향 - 생성자
JAVA 2022. 1. 8. 00:44

Student studentLee = new Student(); Student라는 클래스의 studentLee라는 변수를 만들고 new Student(); 하는데, 이것이 생성자! 생성자 생성자 기본 문법 ([

article thumbnail
2-4.객체 지향 - 인스턴스 생성과 힙 메모리 (heap memory)
JAVA 2022. 1. 7. 21:44

인스턴스 (instance) 클래스는 객체의 속성을 정의(멤버 변수)하고, 기능을 구현하여 만들어 놓은 코드 상태 실제 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값(속성)을 가지게 됨 new 키워드를 사용하여 인스턴스 여러개 생성 가능 힙 메모리 생성된 인스턴스는 동적 메모리(heap memory) 에 할당됨 C나 C++ 언어에서는 사용한 동적 메모리를 프로그래머가 해제 시켜야 함 ( free() 나 delete 이용) 자바에서 Gabage Collector 가 주기적으로 사용하지 않는 메모리를 수거 하나의 클래스로 부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주소를 가지게 됨(JVM이 준 가상 메모리 값) 참조 변수, 참조 값 Student studentLee = new S..

article thumbnail
2-3.객체 지향 - 객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현!
JAVA 2022. 1. 7. 21:31

학생 클래스 정의 학생 클래스의 속성을 멤버 변수로 선언하고 메서드를 구현한다 package ch04; public class Student { public int studentID; public String studentName; public String address; public void showStudentInfo() { System.out.println(studentID+"번의 학생이 이름은 "+studentName+"이고, 주소는 "+address+"입니다."); } public String getStudentName() { return studentName; } public void setStudentName(String name) { studentName=name; } } 학생 클래스를 생..

article thumbnail
2-2.객체 지향 - 함수와 메서드
JAVA 2022. 1. 7. 20:44

함수란 (function) 하나의 기능을 수행하는 코드 함수는 호출하여 사용하고, 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음 함수 정의하기 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨 int add(int num1, int num2) { int result; result = num1 + num2; return result; } 함수 구현하기 예제 package ch02; public class FuntionTest { public static int addNum(int num1,int num2) { //반환할 값의 자료형은 int고, 함수명은 addNum int result; result=num1+num2;..