본문 바로가기

개발 노트/기초 지식42

객체지향 프로그래밍의 4가지 특징 기억하자 추 캡 상 다 º 추상화 abstraction 객체를 설명하기위해 객체들의 공통적인 특징들을 가진 것끼리 묶어 클래스라는 추상적인 객체를 만드는 것 클래스가 없는 객체지향 언어도 있다 (javascript) º 캡슐화 encapsulation 객체의 변수(속성) 과 메소드를 묶어 구현내용을 외부에 감추는것 외부의 객체는 구현 부분을 알지 못하니 정보를 은닉할 수 있고 객체를 보호하는 기능도 있다 java 에서는 접근제한자를 사용하여 캡슐화 하고 있다 º 상속 inheritance 이전에 작성한 클래스(부모클래스, 상위클래스)의 속성(변수, 메소드 등의 기능)을 받아서 새로운 클래스 (자식클래스, 하위클래스) 에서도 사용 가능하도록 한 것 중복되는 코드(기능)를 부모 클래스에 넣고 기능을 받아사용.. 2022. 5. 2.
객체 지향 프로그래밍 OOP 객체지향 프로그래밍이란 프로그램을 만드는 방식 중 하나이다 객체란, 속성(기능)을 가지고 있는 모든 것을 임의로 묶어 말하는 것을 말한다 즉 우리가 설명가능하면 무엇이든 객체화 할수있다 약자는 OOP (Object Oriented Programming) 이다 object 는 객체, orient 지향하다 라는 뜻을 가지고 있다 말그대로 객체를 지향하는 프로그래밍이다 객체라는 범위을 정의하고 그 객체별로 역할을 부여하고 그 객체끼리의 상호작용으로 논리를 이루도록 하는 방식을 뜻한다 어떻게 how 에 중심을 맞춘 방식이다. 그 목적을 달성하기까지의 과정 (어떻게?)을 설명하는 프로그래밍이다 작동에 필요한 알고리즘을 제어문과 상태변화로 표현한다 제어문 : 조건문 : if 문, else 문, else if 문 반.. 2022. 4. 30.
[java] 메모리 영역 컴퓨터의 메모리 영역은 유저가 사용가능한 유저영역과 유저가 손대지 못하는 운영체제 쪽 부분인 커널영역으로 나누어져 있다 컴퓨터를 할때 우리가 이런 저런 프로그램을 사용하지만 사용하며 컴퓨터의 기본 필수 시스템을 건드리면 컴퓨터가 에러를 일으키고 고장나게 될 수 있으므로 컴퓨터 실행의 중요한 부분 (운영체제) 등을 따로 분리해 놓은 것이다 이 중 유저 영역은 4가지 영역으로 나뉜다 code 영역, data 영역, stack 영역, heap 영역 이다 아래에서 위의 4가지 영역들을 간단히 설명하겠다 code 영역 말그대로 텍스트인 코드를 저장하는 영역이다 변수들을 어떻게 사용할지에 대한 프로그램 명령들을 여기에 저장한다 data 영역 (내부에 bss 영역 포함) 전역 변수와 정적 변수가 저장되는 영역이다 프.. 2022. 4. 30.
[java] 바인딩, 정적 메모리 할당, 동적 메모리 할당 바인딩 binding 이란 변수에 변수의 값을 연결하는 것을 말한다. 초기화도 값을 넣는것도 바인딩이라 할 수 있겠다 즉 a = b 라는 상관관계를 만드는 것을 말한다 a = 1 은 a와 1 을 정적 바인딩 한것이고 (따로 참조 없이도 정의가능) a = 메소드.() 은 a와 메소드.() 를 동적 바인딩한것이다 (따로 참조 해야만 정의가능) 정적 바인딩 : 해당 변수에 변수와 관련된 값을 저장하는 것 (stack 에 저장됨) ex) int data = 5; 동적바인딩 : 참조변수 또는 포인터로 힙영역의 객체를 연결시켜주는 것 (stack 에 변수를 저장, heap 으로 참조) ex) Object ob = new Object(); 메모리 할당 컴퓨터를 사용한다는 것은 컴퓨터 내의 메모리 공간을 이용하여 프로.. 2022. 4. 30.