프로그래밍/JAVA 18

Error : unknown command cask

MAC에서 openJDK를 설치하기 위해 brew cast install java 명령을 내렸을때 cask를 찾을 수 없는 명령이라고 나올때 & brew cask install java Error: Unknown command: cask 아래와 같은 명령을 입력한다 brew install --cask adoptopenjdk8 혹시, 아래의 예시처럼 여러 openjdk가 있다는 메시지가 나오면 Error: Cask adoptopenjdk8 exists in multiple taps: homebrew/cask-versions/adoptopenjdk8 adoptopenjdk/openjdk/adoptopenjdk8 설치하고자 하는 버전을 명시해서 설치한다 brew install --cask adoptopenjd..

맥에서 이클립스 자동완성키(Contents Assist) 설정하기

맥(Mac)에서 이클립스(Eclipse) 의 자동완성으로 쓰는 Control + Space 단축키는 맥의 Spotlisht 단축키로 이미 설정되어 있다. 따라서 자동완성 단축키인 Control + Space를 사용할 수가 없다. 이때 Spotlight 단축키를 변경하거나 Eclipse의 자동 완성 단축키를 변경하면 된다. 1. Spotlight 단축키 변경 System Preferences 를 실행하면 아래와 같은 창이 뜸 Spotlight를 선택함 Keyboard Shortcuts 선택 Show Spotlight search를 선택해서 단축키를 변경함 나의 경우 option + space로 변경함 2. Eclipse 단축키 변경 Preferences를 선택함 General > Keys > Content..

자바(JAVA)란 무엇인가?

자바란? 1995년도에 처음 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어 자바가 많이 쓰이는 이유? 메모리와 CPU를 지나치게 많이 사용하기 때문에 윈도우 프로그래밍으로는 부적합하다는 문제점이 있어 C에 비해 열세였지만, 인터넷이 활성화되면서 웹 어플리케이션 구축용 언어로 자바가 급부상했다. 기업체 및 공공기관의 다양한 서버운영체제에서 단 한 번의 작성으로 모든곳에서 실행가능한 언어는 자바뿐이었기 때문. 자바의 특징 1. 높은 이식성자바 언어로 개발된 프로그램은 소스파일을 다시 수정하지 않아도, 자바 실행환경(JRE:JAVA Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행가능 2. 객체지향 프로그래밍 언어객체지향 프로그래밍 언어(OPP: Object Oriented..

기본타입 변수 VS 참조타입 변수

변수란?하나의 값을 저장할 수 있는 메모리의 공간을 말함 변수를 사용하는 이유? 프로그램에 의해서 값이 수시로 변하기 때문 변수의 종류타입에 따른 구분기본타입 변수기본 데이터 타입인 byte, char, short, int, long, float, double, boolean을 이용해서 선언된 변수실제값을 변수안에 저장참조타입 변수참조타입인 배열, 열거, 클래스, 인터페이스를 이용해서 선언된 변수메모리의 번지를 값으로 가진다. 번지(위치주소)를 통해 객체를 참조. 변수의 선언기본타입 변수int age = 35;int price = 10000; 참조타입변수String name = "홍길동";String location = "서울"; 기본타입과 참조타입 변수의 값기본타입의 변수는 실제값( 아래 그림의 숫자 ..

디자인 패턴 - 템플릿 메소드 패턴(Template Method Pattern)

디자인패턴이란? 소프트웨어 설계에서 얻은 세세한 경험들에서 얻어낸 패턴을 정의해 놓은 것, 다시말해 시스템을 만들기 위해서 전체 중 일부 의미 있는 클래스들을 묶은 각각의 집합을 말한다. 이러한 반복되는 의미있는 집합을 정의하고 이름을 지정해서, 누가 이야기하더라도 동일한 의미의 패턴이 되도록 만들어 놓은 것이다. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 라는 [Design Patterns : Elements of Reusable Object-Oriented Software]라는 책에서 최초로 객체 지향에 맞는 디자인 패턴을 정리해 놓았다. 4명의 아저씨가 만들어서 Gof (Gangs of Four)로 부른다. 템플릿 메소드 패턴을 이해하기 위..

객체 지향 프로그래밍

객체 지향 프로그래밍 현실 세계에서 제품을 만들 때, 부품을 먼저 개발하고 그 부품을 조립해서 완제품을 만드는 것처럼, 객체(부품)을 먼저만들고 이것을 하나씩 조립해서 완성하는 프로그래밍 기법을 말한다. 순서에 따라 진행되는 절차 지향 프로그래밍과 대비되는 개념으로 객체(Object)를 이용해서 프로그래밍하는 기법이다. 객체(Object) 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한것을 말한다. 예를 들면 자동차, 자전거, 책, 사람 : 물리적으로 존재하는 것 학과, 강의, 주문 : 추상적인 것 사람 자동차 속성(상태) 이름 나이 성별 차종 색깔 속도 동작(행위) 웃다 걷다 자다 달리다 멈추다 경적을 울리다 현실 세계와 자바에서의 객체

객체 지향 프로그래밍 원칙

객체지향 5원칙(SOLID).객체지향에서 꼭 지켜야 할 5개의 원칙! SRP 단일책임원칙Single Responsibility Principle 모든 클래스는 단 하나의 책임을 가져야 한다는 원칙이다. 다르게 말하면 클래스를 수정할 이유가 오직 하나여야만 한다는 뜻이기도 하다. OCP : 개방-폐쇄 원칙Open Closed Principle모든 소프트웨어 구성 요소는 확장에 대해서는 개방되어있지만, 수정에 대해서는 폐쇄되어있다는 원칙이다. LSP : 리스코프 치환 법칙Liskov Substitusion Principle자식 클래스는 언제나 자신의 부모 클래스를 교체할 수 있다는 원칙이다. 즉 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다는 것. ISP : 인터페이스 분리 원..

접근 제한자

main() 메소드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근 할 수 없는 멤버로 구분해서 필드, 생성자, 메소드를 설계하는 것이 바람직하다. 객체 생성을 막기위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 한다. 접근제한자는 4가지의 종류가 있고, 제한자에 따른 적용 대상과 접근이 불가능한 클래스는 아래의 표와 같다.접근제한 적용할 내용 접근할 수 없는 클래스 public 클래스, 필드, 생성자,메소드 없음 protected 필드, 생성자, 메소드 자식 클래스가 아닌 다른 패키지에 소속된 클래스 default 클..