분류 전체보기 1097

this 예약어 {자신의 메모리를 가리키는 this, 생성자에서 다른 생성자를 호출하는 this, 자신의 주소를 반환하는 this}

앞서 객체란 무엇이고, 코드로 객체를 어떻게 구현하고 생성하는지 알아보았습니다. 이제, 클래스와 객체에 관련된 새로운 용어들을 살펴보고, 객체 간에 어떻게 협력할 수 있는지 알아보겠습니다. 자신의 메모리를 가리키는 this this 는 간단히 설명하면 생성된 인스턴스 스스로를 가리키는 예약어입니다. 이 외에도 다른 역할로 this 를 사용할 수 있습니다. 예제를 통해 하나씩 내용을 살펴보겠습니다. package thisex; class BirthDay { int day; int month; int year; public void setYear(int year) { this.year = year; } public void printThis( ) { System.out.println(this); } } pu..

정보 은닉 {접근 제어자 살펴보기, get( ) & set( ) 메서드, 정보은닉이란}

접근 제어자 살펴보기 지금까지 클래스를 만들고 멤버 변수, 메서드, 생성자 등을 만들 때도 public 예약어를 사용했는데, 이 예약어의 의미를 살펴보겠습니다. 객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있습니다. 이러한 예약어를 '접근 제어자 access modifier' 라고 합니다. 앞에서 만들었던 모든 변수에는 public 예약어가 있습니다. public 이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻입니다. 반대로 접근 제어자를 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없습니다. 예제를 통해 접근 제어자 변경이 어떤 영향을 미치는지 살펴보겠습니다. pac..

참조 자료형 {참조 자료형이란, 헷갈렸던 점(전반부), 헷갈렸던 점(후반부), 추가 이해 자료}

참조 자료형이란? 크기가 정해진 기본 자료형(int, char, float, double 등) 으로 선언하는 변수 뿐만 아니라 클래스 자료형으로 선언하는 참조 자료형 변수가 있다. 예를 들어보면서 알아보겠습니다. 어떤 학생이 국어와 수학 과목을 수강하는데, 시험을 본 후 국어 성적과 수학 성적 정보를 저장하는 프로그램을 만들려고 합니다. 객체 지향 프로그래밍을 시작할 때는 일단 클래스를 어떻게 만들지 생각해야합니다. package reference; public class Student1 { int studentID; String studentName; int koreaScore; int mathScore; } 위의 예제에는 String 이 JDK(Java Development Kit)에서 제공하는 참조..

생성자 {생성자란, 생성자 만들기, 생성자 오버로드}

생성자란? {디폴트 생성자} 생성자(constructor)에 대해 자세히 살펴보겠습니다. 다음과 같이 Person 과 PersonTest 클래스를 만들어 보겠습니다. package constructor; public class Person { String name; float height; float weight; } package constructor; public class PersonTest { public static void main(String[] args) { Person personLee = new Person(); } } 위 예제에서 클래스를 생성할 때 사용하는 Person( ) 같은 함수를 생성자라고 합니다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것입..

클래스와 인스턴스 {main 함수, main 함수를 사용하는 두 가지 방법, new 예약어로 클래스 생성하기, 인스턴스와 참조변수, 인스턴스와 힙 메모리, 객체 지향 프로그램 관점 용어 정리}

클래스 사용과 main( ) 함수 우리가 만든 클래스를 다시 한 번 살펴보겠습니다. class Student { int studentID; String studentName; int grade; String address; public String getStudentName(String name) { return studentName; } public void setStudentName(String name) { studentName = name; } } Student 클래스(Student 객체)는 속성과 기능으로 구성되어 있습니다. 멤버 변수는 클래스 속성을 나타내고, 메서드는 멤버 변수를 이용하여 클래스 기능을 구현합니다. 이렇게 만든 클래스를 직접 사용해서 결과 값을 출력해 봅시다. 프로그램을 시작..

메서드 {함수란?, 함수의 입력과 반환, 함수 정의하기, 함수 호출하고 값 반환, 함수 호출과 스택메모리, 함수의 장점, 클래스 기능을 구현하는 메서드}

메서드? 메서드는 함수(function)의 한 종류입니다. 함수란 무엇인지 먼저 살펴보고, 자바에서 사용하는 메서드에 대해 자세히 알아보겠습니다. 함수란? 함수란 '하나의 기능을 수행하는 일련의 코드'를 말합니다. 예를 들어 1. 숫자 두 개를 입력 받아 더한다. 2. 가장 좋은 점수 두 개를 더한다. 와 같이 "더한다"는 중복되는 기능이 있는 경우, 해당 기능을 수행하는 코드를 묶어서 '더하기 함수'로 만들 수 있습니다. 그리고 더하기 기능이 필요할 때마다 이 함수를 불러서 연산을 하는 것입니다. 이처럼 함수는 어떤 기능을 수행하도록 어떤 기능을 수행하도록 미리 구현해 놓고 필요할 때마다 호출하여 사용할 수 있습니다. 함수의 입력과 반환 함수는 이름이 있고 입력 값과 결과 값을 갖습니다. 두 수의 합을..

클래스 살펴보기 {클래스 속성을 구현하는 멤버 변수, 클래스 기능을 구현하는 메서드, 패키지란?}

클래스 속성을 구현하는 멤버 변수 클래스 내부에 선언하여 객체 속성을 나타내는 변수가 멤버 변수입니다. (member variable) 클래스에 선언하는 멤버 변수는 다른 말로 속성(property), 특성(attribute) 등으로 표현하기도 합니다. 멤버 변수는 속성이 무엇이냐에 따라 알맞은 자료형을 선언해 주어야 합니다. 예를 들어, 학번 속성에는 int studentID 로 Int 자료형과 studentID 변수이름으로 선언해주는 것처럼 말이죠. 기본 자료형(primitive data type) 으로 선언할 수도 있고, 클래스형(객체 자료형 혹은 찹조 자료형) 으로 선언할 수도 있습니다. 클래스 기능을 구현하는 메서드 지금까지 클래스를 선언하고 클래스 속성인 멤버 변수를 선언했습니다. 클래스에서는..

객체 지향 프로그래밍과 클래스 {객체란, 생활 속 예시, 클래스란?}

객체와 객체 지향 프로그래밍 국어 사전에서 객체의 뜻을 찾아보면 '의사나 행위가 미치는 대상'이라고 설명합니다. 객체지향은 간단히 말해서 프로그램을 구현하는 기법입니다. 우리 주위에 있는 객체는 사람, 집, 자동차 등 눈에 보이는 모든 사물을 의미합니다. 눈에 보이지 않는 것도 객체가 될 수 있습니다. 인터넷, 주문, 배달관리시스템 등 어떤 행동을 나타내는 단어도 객체가 될 수 있습니다. 객체를 프로그램화한다는 것은 객체가 가지고 있는 정보를 코드로 구현하는 것을 의미합니다. 객체가 가지고 있는 속성과 기능을 조사한 다음 묶어서 클래스라는 요소로 만듭니다. 객체를 프로그램화 한다는 것은 객체를 클래스로 만든다는 것입니다. 그래서 자바에서 객체는 클래스로 만들게 됩니다. 생활 속에서의 객체 절차 지향 프로..

반복문 {정의, 종류, while문, do-while 문, for 문, for 문 요소 생략, 중첩된 반복문, continue 문, break 문}

반복문이란? 1부터 10까지 더한 합을 이제까지 배운 것으로 계산해 보겠습니다. int num = 1; num += 2; num += 3; ... num += 10; 엄청나게 비효율적인 코드입니다. 유지보수 하기도 힘든 코드입니다. 이렇게 반복되는 일을 처리하기 위해 사용하는 것이 '반복문'입니다. 반복문의 종류 자바 프로그램에서 사용하는 반복문의 종류에는 while문, do-while문, for문 이렇게 세 가지가 있습니다. while 문 while 문은 조건식이 참인 동안 수행문을 반복해서 수행합니다. while (조건식) { 수행문1; ... } while 문에서는 어떠한 조건식을 만족하는 동안 중괄호 { } 안의 수행문을 반복해서 처리합니다. 조건문과 마찬가지로 수행문이 하나인 경우에는 { }를 ..

GIT3 branch & conflict - 병합(merge) {다른 파일 병합, 같은 파일 다른 곳 수정 병합, 같은 파일 같은 곳 수정 병합}

병합이 필요한 이유 여러분이 commit 을 하면 버전이 만들어집니다. 이 버전들은 기본 branch 인 main branch 에 속해 있습니다. 그 후에 여러분이 apple branch 를 만들고, 해당 branch 로 체크아웃 하고 나서 commit 을 통해 새로운 버전을 만들면 apple branch 소속이 됩니다. 아주 환상적인 기능입니다. 저장소를 여러 개 만들어서 고객사를 관리하던 것과 비교하면 아주 환상적입니다. 그런데, 사람의 욕심은 끝이 없습니다. apple branch 에서 만들었던 기능이 master 에서도 유용할 것 같은 겁니다. 이럴 때 여러분은 merge, 즉 합치는 작업을 하고 싶을 겁니다. base commit 과 merge commit 우리는 master 에서 작업한 내용도..