본문 바로가기

IT

[Java 기초] #6. 메서드와 클래스 - 심화 클래스 멤버 억세스 클래스의 멤버 (변수, 메서드)는 외부에서 억세스 할수 있는지 여부에 따라 public 와 private로 나눌 수 있습니다. 이렇게 구분 하는 것은 객체지향 프로그램의 사상인 Encapsulation과 연관이 있습니다. 가능하면 최소한의 정보만 외부에 노출시켜서 객체의 잘못된 사용을 막겠다는 취지라고 하네요. public : 프로그램의 다른 어떤 코드도 억세스 가능private : 같은 클래스 내의 멤버만 억세스 가능default (public이나 private 설정이 없는 경우) : 보통은 public과 동일하나 패키지를 사용하는 경우는 같은 패키지 내에서만 억세스가 가능합니다. 일반적으로 자바 프로그램의 클래스에서는 setter, getter메서드를 정의해서 클래스 외부에서의 억.. 더보기
아이폰 5s 고장난 카메라 교체하기 새 것만 같았던 제 아이폰5s도 어느 새 3년을 훌쩍 넘어 이제는 세월의 흔적이 많이 느껴지게 되었습니다.하지만 2015년 겨울에 배터리를 교체한 뒤로는 큰 문제 없이 잘 사용하고 있었죠. 2015/12/29 - 아이폰 5s 자가수리기 : 배터리 교체, 카메라 먼지 제거, 액정들뜸 수리 그런데 올해 초 포켓몬 고 게임을 시작하는데, 뭔가 어색한 느낌이 들더군요. 뭔가 했더니 AR이 켜져 있는데도 배경이 그냥 흰색으로 나오더라고요.그때만 해도, 그냥 게임의 문제인 줄 알고 크게 신경을 안 쓰고 있었는데, 며칠 뒤 오래간만에 사진을 찍으려고 카메라 앱을 시작했는데 그냥 검은 색 화면만 나왔습니다. 그제서야, 후면 카메라가 고장이 났다는 걸 알게 되었죠. 이제 사용한 지 3년도 넘었고, 선택약정 기간이 아직 .. 더보기
[Java 기초] #5. 추가적인 데이터 타입과 오퍼레이터 배열 Arrays 배열은 공통된 이름을 가지는 같은 타입의 변수의 집합입니다. 다른 언어들처럼 자바도 다차원 배열을 지원합니다. 배열도 자바에서는 오브젝트이기 때문에, 선언할 때 new 를 사용합니다. 클래스 오브젝트와의 차이점은 괄호 안에 컨스트럭터로 넘겨지는 파라메터를 명시하지 않고, 대괄호 안에 배열의 크기를 지정한다는 것이죠. type array-name[] = new type[size]; type은 배열 변수의 데이터타입을 의미하며 size는 배열 변수의 갯수를 정의합니다. 배열의 정의 시 사용되는 대괄호 [] 는 변수이름 뒤에 오지만, 데이터 타입 뒤에 와도 됩니다. 여러 개의 배열을 동시에 선언할 때 이런 방식을 사용하면 더 간단하게 쓸 수 있습니다. int[] nums, nums2, num.. 더보기
[Java 기초] #4. 클래스, 오브젝트, 메서드 클래스 클래스의 정의: 클래스는 오브젝트의 형식을 정의하는 템플릿입니다. 클래스는 데이터와 테이터에서 작동하는 코드를 모두 정의합니다.오브젝트는 클래스의 인스턴스입니다. (뒤에서 설명하겠지만, new 키워드로 클래스의 컨스트럭터를 호출하면 오브젝트가 생성됩니다) 클래스는 논리적 추상화입니다. 즉 클래스는 오브젝트로 구체화 되기 전까지는 실재하는 존재가 아니라고 할 수 있습니다. "자동차" 에 대한 클래스를 아래처럼 정의해 봅니다. class Vehicle { int passengers; // number of passengers int fuelcap; // fuel capacity in gallons int mpg; // fuel consumption in miles per gallon } 클래스의 정의.. 더보기
[Java 기초] #3. 프로그램 제어 이번에는 프로그램의 흐름 등을 제어하기 위한 자바의 명령어를 정리해 보겠습니다. ifif를 이용한 가장 단순한 형식은 다음과 같습니다. (else는 필수가 아닙니다.) if(컨디션) 명령;else 명령;중괄호를 이용해서 하나가 아닌 다양한 명령을 수행하게 합니다.if(condition) { statement sequence } else { statement sequence } 자바에는 elif 구문이 없습니다. 그냥 else if 를 이용하면 됩니다.if(condition) statement; else if(condition) statement; else if(condition) statement; . . . else statement; switchswitch는 case / break 구문을 이용합니다... 더보기
[Java 기초] #2. 자바의 데이터 타입(자료형)과 오퍼레이터(연산자) 자바의 데이터 타입 데이터 타입 (자료형) 은 문자, 정수, 소수 등 데이터(자료) 의 형식을 말합니다. 프로그래밍 언어중에서는 파이썬처럼 데이터 타입을 명시적으로 정의할 필요가 없는 언어도 있지만, C처럼 데이터 타입을 반드시 정의해야 하는 언어도 있습니다. 자바는 후자에 속하며, 이와 같은 언어를 "strongly typed language"라고 합니다. 자바는 크게 2가지 형태의 데이터 타입을 가지고 있는데, 객체지향타입과 비객체지향 타입입니다. 앞에서 간략히 언급했던 class 가 가장 대표적인 객체지향타입이라면, 비객체지향 타입은 자바의 8가지 기본타입 (primitive data type)으로 정의할 수 있습니다. 자바의 기본 타입 (Built-in Primitive Data Types)정수형.. 더보기
[Java 기초] #1. 자바 핵심사항과 환경설정 개인적으로 블록체인, 특히 R3의 Corda를 공부하다 보니 Java에 대한 지식이 필요하여 오라클에서 발매된 "Java a beginner's guide" 라는 책을 보고 있습니다. 프로그래밍 언어에 대한 책들을 그렇게 많이 본 건 아니지만, 이 책은 제가 지금까지 본 책들 중에서는 가장 잘 씌여진 게 아닌가 생각이 들 정도로 좋은 책이라는 생각이 듭니다. 프로그래밍에 대한 아무런 사전 지식이 없는 사람부터, 다른 언어(C나 파이썬 등) 에 대한 지식이 어느 정도 있는 사람까지 모두 이 책을 통해 자바에 대한 지식을 많이 얻을 수 있도록 잘 쓴 책 이라고 생각 합니다.그래서, 블로그에 이 책의 내용을 기반으로 자바의 기초 내용을 정리해 보려 합니다. 이미 온라인에 수많은 자바 관련 글들이 있으므로 본 .. 더보기
윈도우의 폴더(디렉토리)들을 각각의 zip 파일로 압축하기 오늘은 아주 간단한 윈도우 배치 파일을 공유합니다. (원출처 : http://stackoverflow.com/questions/20485419/batch-file-script-to-zip-files ) 여러 디렉토리를 하나의 압축 파일로 묶기는 아주 쉽습니다. 그냥 윈도우 탐색기에서 원하는 폴더들을 선택한 후, 압축파일로 보내기를 선택하면 되죠. 하지만 각각의 디렉토리별로 하나의 압축파일로 저장하려면, 일일이 선택해서 압축하는 노가다를 해야 합니다. 디렉토리가 한두개면 그냥 하겠지만, 몇십개나 몇백개라면 클릭 노가다 하기도 쉽지 않습니다. 그런 경우 사용할 수 있는 간단한 윈도우용 배치 스크립트입니다. 이 배치파일은 7zip을 사용하고 있으며 C:\Program Files\7-Zip 에 설치되어 있음을 .. 더보기