본문 바로가기

분류 전체보기87

[Java] 접근 제어 지시자(private, protected, public) 1. 접근 제어 지시자 (Access Modifier) 클래스 외부에서 클래스의 맴버 변수, 메서드, 생성자를 접근할 수 있는 권한을 설정하는 키워드이다. 1.1 비공개 (private) private 지시자는 같은 클래스 내부에서만 접근 가능하다 외부 클래스 및 상속 관계 클래스도 접근이 불가능하다. 조건에 따라 get, set메서드로, 제한적인 접근 기능을 제공하기도 한다. 사용 목적 객체의 값(맴버 변수), 기능(메서드)를 외부에 접근 및 사용을 원치 않을 때 객체의 동작 매커니즘을 노출하고 싶지 않을 때 보안성 확보와 객체 오남용을 방지하고 싶을 때 1.2 보호, 부분 공개 (protected) protected 지시자는 같은 패키지와 상속받은 자식 클래스만 접근 가능하다. 외부 클래스는 접근이 .. 2022. 11. 11.
[Java] 기본 생성자와 사용자 정의 생성자 클래스를 인스턴스화 할 때 생성자가 반드시 필요한데 생성자는 크게 2가지로 구분된다 기본으로 생성되는 기본 생성자 내가 원하는대로 구현하는 사용자 정의 생성자 1. 생성자 (constructor) 사람은 말하지 않아도 "아 있잖아 그거, 그렇게 해놔" 라고 말하면 눈치껏 그게 그건가 하고 알아서 하는데 컴퓨터는 그런게 없으므로 반드시 객체를 생성할 때 세세히 다 알려줘야한다. 사전적 정의로는, 클래스의 객체를 생성할 때, 자동으로 호출될 목적으로 만든 특별한 메소드라고 하는데 메소드처럼 기능을 호출하는 것이 아니고, 객체를 생성하기 위해 new 키워드를 트리거로 호출된다. 생성자는 반환값이 없고 클래스의 이름과 동일하며, 객체가 생성될 때 변수나 상수를 초기화하고 init 메서드를 호출한다 생성자는 pu.. 2022. 11. 10.
[Java] 인스턴스와 메모리 객체를 인스턴스화 하면 RAM 메모리에 적재되는데 이를 세부적으로 알아보면 객체를 대입한 변수는 참조형 변수가 되면서 함수의 지역변수 이므로 Stack 메모리에 적재되고 인스턴스 객체는 New 키워드로 동적 생성되면서 Heap 메모리에 적재된다. 1. 인스턴스 클래스는 객체의 속성과 기능을 청사진 처럼 정의만 해놓은 상태이다. 클래스 기반으로 생성된 객체(인스턴스)는 각각 다른 맴버 변수 값을 가진다. new 키워드를 사용하면 인스턴스화 된 객체를 생성한다. 예제 코드 - 학생 객체 정의 public class Student { int studentId; public String studentName; String address; public void showStudentInfo() { System.ou.. 2022. 11. 9.
[객체지향] 함수와 메서드 차이 절차지향에서 함수를 쓰다가 객체지향에서 메서드를 사용하다보면 함수나 메서드나 똑같은거 아닌가 하는 생각이 드는데 엄연히 이 둘은 다르다. 함수는 독립된 모듈처럼 어디서든 호출이 가능하지만 메서드는 클래스에 종속되어 있으므로 접근제어자 권한에 따라 호출 및 사용이 제한된다. 1. 함수 (function) 하나의 기능을 수행하는 일련의 코드로, 다른말로 서브루틴이라 한다. 구현된 함수는 호출하여 사용하고 호출된 함수가 종료되면 기존 제어코드로 복귀한다. 함수로 구현된 기능은 여러 곳에서 동일한 방식으로 호출하여 사용이 가능하다. 2. 함수 구현(정의)하기 함수의 선언부는 반환 값 이름, 매개 변수으로 구성된다. 내부는 코드, 반환 값, 함수 구역으로 구성된다. 함수 구성 형식 반환값 함수이름(매개 변수1, .. 2022. 11. 9.
[객체지향] 객체란 무엇인가? 객체지향 프로그래밍의 핵심인 객체는 처음에 들으면 개념이 매우 난해해서 사람마다 이해하는게 아예 달라서 같은 개발자끼리도 이해한 방식이 다르기에 같은 말을 하면서도 서로 왜 그렇게 설명하지 이해가 안된다고 토론배틀을 벌이는 모습을 심심찮게 볼 수 있다. 개인적으로 내가 이해한 객체의 개념을 정리해서 올려보았다. 1. 객체 (Obecjt) 사전적 정의로는 실제로 존재하는 것을 의미한다. 객체지향 프로그래밍의 객체는 처리의 대상이 되는 목적물로 유형과 무형을 구분하지 않는다. 이를 프로그래밍 학문의 관점으로 말하면, 속성과 그에 대한 연산방법을 함께 묶은 것이라 할 수 있다. 즉, 실존하는 물질, 장소, 생명체도 객체이고, 상상속에 존재하는 어떠한 것도 객체라 할 수 있다. 2. 객체의 특징 2.1 고유 이.. 2022. 11. 8.
[객체지향] 객체지향 프로그래밍 간단 개요 여러 프로그래밍 방법론 중에 현재 가장 많이 사용되는 방법론으로 객제지향 프로그래밍이 있는데 신입 개발자 면접에서 기본기 확인용으로 자주 물어보므로 꼭 숙지하는게 좋다. 1. 객체지향 프로그램이란 무엇인가? 정식 명칭은 Object-Oriented Programming 줄여서 OOP 라고 한다. 처리할 데이터를 추상화 하여 값과 기능을 가진 객체로 구현하고. 객체간의 상호작용으로 시스템을 구성하는 방법론이다. 1.1 객체지향은 왜 나왔는가? 초기의 소프트웨어는 기능이 단순해서 프로시저 중심으로 코드를 작성해도 큰 문제가 없었는데 SW가 발전하면서 개발 규모가 커지자 변수나 구조체 문법으로는 감당이 힘들어져 새로운 대안이 필요했다. 절차지향이 기능을 중심으로 ' 어떤 기능을 어떤 절차로 진행할 것인가 ' .. 2022. 11. 7.