전체 글 (137) 썸네일형 리스트형 Chapter 9. 객체지향 프로그래밍(OOP, Object-Oriented Programming) 9.1. 객체지향 프로그래밍이란? 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점이 있다. 그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다.. Chapter 8. 접근 제한자(Access Modifier)와 싱글턴 패턴(Singleton Pattern) 8. 1. 접근 제한자(Access Modifier)란? 몇 개월에 걸쳐 열심히 만들어낸 음원을 다른 사람이 도용해서 쓴다면 정말 화가 나겠죠. 이러한 사태를 방지하기 위해 저작권이라는 권리가 존재하는 것처럼 개발자가 열심히 만든 자바 소스 코드를 다른 사람이 함부로 동의 없이 사용하거나, 삭제 또는 망가뜨리는 행위를 하게 된다면 프로그래밍 생태계는 그야말로 무법지대가 되어버릴 것입니다. 이처럼 내가 작성한 코드 또는 다른 개발자가 작성한 코드를 어느 수준까지 사용 또는 편집하는 것을 허용할지 구체적으로 가이드를 제시하는 데 사용하는 것이 바로 접근 제한자입니다. 접근제한자는 객체지향 프로그래밍의 4대 원칙 중 하나인 캡슐화와 연관이 있는 개념입니다. 캡슐화란 ‘객체의 속성(data fields)과 행위.. Chaper 7. 패키지(Package)와 import 7. 패키지(Package)란? 전문 프로그래머가 아니더라도 컴퓨터를 사용해본 일반인이라도 컴퓨터에 파일을 어떻게 저장하는지는 알고 계실 것입니다. 보통 바탕화면에 저장하거나 혹은 C드라이브에 별도의 폴더를 만들어서 그곳에 저장하는 것이 일반적이죠. 요즘은 클라우드 저장소도 있긴 하지만요! 이와 같이 어떤 파일과 같은 데이터가 저장된 경로는 디렉토리(Directory)라고 부릅니다. 우리나라로 비유하면 도로명 주소나 지번 주소에 해당한다고 볼 수 있습니다. 자바에서도 마찬가지로 확장자가 .java인 파일을 특정 경로에 저장하여 관리하게 되는데요, 이 때 이러한 자바 클래스들을 모아 놓은 디렉토리를 자바에서는 특별히 패키지(Package)라고 부르게 됩니다. 이 패키지는 C\local\mydata 와 같은.. Chapter 6. 상속(Inheritance) 6. 상속(Inheritance)이란? 자바에서는 클래스간에 서로 부모-자식의 관계를 설정할 수 있습니다. 예를 들면 Fruit이라는 클래스를 만들었는데, 이 클래스를 계승하는 Apple이나 Orange 같은 클래스를 만들어서 명시적으로 이 클래스들은 부모-자식 관계라는 것을 설정할 수 있습니다. 물론 이런 관계 설정은 필수적인 것이 아닙니다. 그러나 자바에서는 만약 클래스에 부모-자식 관계를 설정하지 않으면 Object라는 클래스를 자동으로 상속받게 됩니다. 주로 최상위 부모 클래스에서 이 원칙이 적용되는데, 그 어떤 부모 클래스도 결국은 Object라는 클래스를 상속받은 클래스라는 것이죠. 자바에서 이런 관계를 설정한 것은 객체지향 프로그래밍과 관련이 있는데 이 부분은 나중에 객체지향 프로그래밍 챕터.. Chapter 5. Java의 클래스, 생성자, 메서드 5. 0. Java의 클래스란? Chapter 1.에서 우리는 자바의 변수가 무엇인지에 대해 알아보았습니다. 간략하게 변수란 '자료(Data)를 저장하기 위한 공간'이라고 요약할 수 있겠습니다. 자, 여러분에 마트에 방문했다고 가정을 해봅시다. 오늘 저녁은 맛있는 크림 파스타를 만들려고 결정했는데요. 그래서 마트 입구에서 바구니를 들고 상품을 고르려고 마트의 코너들을 돌아다녀 봅니다. 제일 먼저 눈에 띄는 재료는 파스타 면이었습니다. 다음으로 크림 파스타의 소스를 만들기 위해 우유를 담으려고 하는데, 아뿔싸! 바구니에서 갑자기 경고창이 뜨면서 ‘고객님의 바구니는 파스타 면만 담으실 수 있습니다’하고 안내 문구가 보입니다. 기분 좋게 파스타 재료를 사려고 왔던 여러분은 크게 당황하셨을 것 같습니다. 정말 .. [ANDROID] 안드로이드의 네트워크 통신 (HTTP 통신, Volley) Volley란? 구글에서 개발한 안드로이드의 네트워크 프로그래밍용 라이브러리입니다. 안드로이드는 기본적으로 컴퓨터와 달리 네트워크 사용 시 권한 설정이 필요하고, HTTP 통신을 할 경우에는 허용할 도메인 또는 IP 주소가 담긴 설정파일 (xml) 등을 통해 제한적으로 허용할 수 있습니다. 또는 AndroidManifest.xml 파일의 application 태그에 직접 설정을 추가하여 모든 도메인과 통신을 허용할 수 있습니다. HTTP 요청의 메서드 GET, POST, PUT, DELETE 모두 사용 가능합니다. JavaScript의 fetch() 메서드와 비슷한 느낌입니다. REST API로부터 데이터를 받아 뷰(View)에 표시하는 작업 등을 할 수 있습니다. 테스트용으로 사용하기 편한 REST A.. [백준 4335] 숫자 맞추기 https://www.acmicpc.net/problem/4335 4335번: 숫자 맞추기 스탠과 올리는 정수 맞추기 게임을 하고 있다. 스탠은 1과 10사이의 정수 하나를 생각하고, 올리는 스탠이 생각한 수를 맞춰야 한다. 올리가 수를 말할 때마다 스탠은 올리가 말한 수가 큰지, 작 www.acmicpc.net 풀이 설명 스탠이 거짓말을 하는지 판별하는 알고리즘입니다. 스탠의 발언(?)을 스택에 저장하고 스택에서 값을 꺼내서 그중 거짓이 있는지 판별합니다. 스탠의 발언은 크다(too high), 작다(too low), 같다(right on) 세가지입니다.그래서 정답보다 큰 수를 위한 스택 하나, 작은 수를 위한 스택 하나를 총 두개의 스택으로 거짓말을 판별합니다.자세한 로직은 아래의 소스코드 참고 im.. [ANDROID] 휴대전화의 여러 정보를 얻는 방법 (Android PhoneStateListener, TelephonyCallback) phoneStateListener, TelephonyCallback 이란? 스마트폰에서 네트워크 상태를 감지하는 리스너, 콜백 함수입니다. phoneStateListener는 안드로이드 API 버전 12 이후로부터 deprecated 되었습니다. 이유를 찾아보려 했으나 잘 모르겠습니다... 혹시 찾으면 추가할 예정입니다... 그래도 API 12 레벨 이전 앱을 개발한다면 PhoneStateListener 도 사용해야할 수 도 있습니다. PhoneStateListener PhoneStateListener 를 사용할 때 중요한 클래스는TelephonyManager입니다. 이 클래스의 listen 메서드를 통해서 리스너를 동작시킬 수 있습니다. listen 메서드의 두번째 매개변수를 통해 원하는 휴대전화 정보.. 이전 1 ··· 13 14 15 16 17 18 다음