본문 바로가기

분류 전체보기255

[1주차] Java 중급 - 여러 인스턴스에서 공통으로 사용하는 변수를 선언하자 - static 변수 공통으로 사용하는 변수가 필요한 경우 여러 인스턴스가 공유하는 기준 값이 필요한 경우 학생마다 새로운 학번 생성 카드 회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여 회사에 사원이 입사할 때마다 새로운 사번이 필요함 static 변수 선언과 사용하기 static int serialNum; 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 클래스 변수, 정적 변수라고도 함(vs. 인스턴스 변수) 인스턴스 생성과 상관 없이 사용가능하므로 클래스 이름으로 직접 참조 Student.serialNum = 100; Static 변수 테스트하기 Employee.java package ch16; public class Employee { public stati.. 2023. 6. 24.
[1주차] Java 중급 - 복습해봅시다(객체 협력) 다음과 같은 상황을 구현해 봅시다. 앞의 예제에서 Edward는 지각을 해서 택시를 타야 했습니다. 20000원을 가지고 있었는데 10000원을 택시비로 사용했습니다. 택시는 '잘나간다 운수' 회사 택시를 탔습니다. Edward → Person 객체 속성 : 이름, 돈 택시 → Taxi 객체 속성 : 택시 회사, 수입 Person.java package ch15; public class Person { public String Name; public int money; public Person(String Name, int money) { this.Name = Name; this.money = money; } public void takeTaxi(Taxi taxi) { taxi.take(10000); t.. 2023. 6. 24.
[1주차] Java 중급 - 버스 타고 학교 가는 학생의 과정을 객체 지향 프로그래밍으로 구현해보기 James와 Tomas는 각각 버스와 지하철을 타고 학교에 갑니다. James는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다. Tomas는 10000원을 가지고 있었고, 초록색 지하철을 타면서 1200원을 지불합니다. 두 학생이 버스와 지하철을 타는 상황을 구현해봅시다. 학생 개체 → 이름, 돈 버스 개체 → 버스 번호, 승객 수, 수입 지하철 개체 → 지하철 라인, 승객 수, 수입 Student.java package ch14; public class Student { String studentName; int grade; int money; public Student(String studentName, int money) { this.studentName = studen.. 2023. 6. 24.
[1주차] Java 중급 - 객체 간의 협력(collaboration) 객체 지향 프로그래밍에서의 협력 객체 지향 프로그램에서 객체 간에는 협력이 이루어짐 협력을 위해서는 필요한 메세지를 전송하고 이를 처리하는 기능이 구현되어야 함 매개 변수로 객체가 전달되는 경우가 발생 객체 협력의 예 학생이 버스를 탔을 때 학생의 가진 돈으로 버스의 수입이 증가 승객수가 증가 2023 KAKAO Tech Campus_BackEnd 필수 과정 Java 1주차 강의 정리 내용입니다. 2023. 6. 24.
[1주차] Java 중급 - 객체 자신을 가리키는 this this가 하는 일 인스턴스 자신의 메모리를 가리킴 생성자에서 또 다른 생성자를 호출할 때 사용 자신의 주소(참조값)을 반환 함 생성된 인스턴스 메모리의 주소를 가짐 public void setYear(int year){ this.year = year; // 반드시 this를 써야함 } 클래스 내에서 참조변수가 가지는 주소 값과 동일한 주소 값을 가지는 키워드 생성자에서 다른 생성자를 호출하는 this public class Person{ String name; int age; public Person(){ this("이름없음", 1); // 생성자 호출 } public Person(String name, int age){ this.name = name; this.age = age; } } 클래스에 생성.. 2023. 6. 24.
[1주차] Java 중급 - 캡슐화(encapsulation) 정보 은닉을 활용한 캡슐화 꼭 필요한 정보와 기능만 외부에 오픈함 대부분의 멤버 변수와 메서드를 감추고 외부에 통합된 인터페이스만은 제공하여 일관된 기능을 구현하게 함 각각의 메서드나 멤버 변수를 접근함으로써 발생하는 오류를 최소화 함 레포트 만들기 예제 MakeReport.java package ch11; public class MakeReport { StringBuffer buffer = new StringBuffer(); // Buffer를 사용 private String line = "==============================================\\n"; private String title = "이름\\t주소\\t\\t전화번호 \\n"; private void makeHea.. 2023. 6. 24.
[1주차] Java 중급 - 접근 제어 지시자(access modifier)와 정보 은닉(infomation hiding) 접근 제어 지시자 (access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 private : 같은 클래스 내부에서만 접근 가능 (외부 클래스, 상속 관계의 클래스에서도 접근 불가) 아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가) protected : 같은 패키지나 상속 관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근할 수 없음 public : 클래스의 외부 어디서나 접근 할 수 있음 get() / set() 메서드 private 으로 선언된 멤버 변수 (필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공 get() 메서드만 제공 되는 경우 rea.. 2023. 6. 24.
[1주차] Java 중급 - 참조 자료형 변수 참조 자료형 변수의 자료형 클래스형으로 변수를 선언 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름 참조 자료형을 사용할 때는 해당 변수에 대해 생성해야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음) 참조 자료형 정의하여 사용하기 학생이 수강한 과목들에 대한 성적을 산출하기 위한 경우 학생 클래스 속성에 과목이 모두 있으면 불합리 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언 선언된 Subject 변수는 생성된 인스턴스가 아니므로, Student의 생성자에서 생성하여 사용 Student.java package ch09; public clas.. 2023. 6. 24.
[1주차] Java 중급 - 복습해봅시다(객체 구현하기) 다음 설명에 해당되는 객체를 구현하고 해당 정보를 출력해 보세요 1. 키가 180이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 Tomas이고 나이는 37세입니다. Person.java package ch08; public class Person { public int height; public int weight; public String Name; public int age; public Person() {} public Person(int height, int weight, String Name, int age) { this.height = height; this.weight = weight; this.Name = Name; this.age = age; } public String showPer.. 2023. 6. 24.
[1주차] Java 중급 - 여러가지 생성자를 정의하는 생성자 오버로딩(overloading) 생성자 정의하기 생성자를 구현해서 사용할 수 있음 클래스에 생성자를 따로 구현하면 기본 생성자(default constructor)는 제공되지 않음 생성자를 호출하는 코드(client 코드)에서 여러 생성자 중 필요에 따라 호출해서 사용할 수 있음 UserInfo.java package ch07; public class UserInfo { public String userId; public String userPassWord; public String userName; public String userAddress; public String phoneNumber; public UserInfo() {} // 기본생성자 public UserInfo(String userId, String userPassWor.. 2023. 6. 24.
[1주차] Java 중급 - 생성자에 대해 알아봅시다(constructor) 생성자 생성자 기본 문법 ([argument_list]){[]} 객체를 생성할 때 new 키워드와 함께 사용 - new Student(); 생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new 와 함께 호출 됨 객체가 생성될 때 변수나 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출 함 생성자는 반환 값이 없고, 클래스의 이름과 동일 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private으로 선언되는 경우도 있음 기본 생성자 (default constructor) 클래스에는 반드시 적어도 하나 이상의 생성자가 존재 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자.. 2023. 6. 24.
[1주차] Java 중급 - 인스턴스 생성과 힙 메모리 인스턴스 (instance) 클래스는 객체의 속성을 정의하고, 기능을 구현하여 만들어 놓은 코드 상태 실제 클래스 기반으로 **생성된 객체(인스턴스)**는 각각 다른 멤버 변수 값을 가지게 됨 가령, 학생의 클래스에서 생성된 각각의 인스턴스는 각각 다른 이름, 학번, 학년 등의 값을 가지게 됨 new 키워드를 사용하여 인스턴스 생성 힙 메모리 생성된 인스턴스는 동적 메모리(heap memory)에 할당됨 C 나 C++언어에서는 사용한 동적 메모리를 프로그래머가 해제 시켜야 함 free() → malloc 사용했을 때 delete → new로 생성했을 때 자바에서 Garbage Collector가 주기적으로 사용하지 않는 메모리를 수거 하나의 클래스로 부터 여러개의 인스턴스가 생성되고 각각 다른 메모리 주.. 2023. 6. 24.