JAVA 09 정보은닉과 캡슐화
·
Programming/Java
정보은닉 데이터나 기능을 포함한 클래스 내에서만 접근을 허용하겠다. 문법적 오류는 컴파일 오류가 발생해 문제를 파악할 수 있지만, 논리적 오류는 컴파일 오류가 발생하지 않아 문제 파악이 힘들 수 있다. 논리적 오류가 발생했을 때, 논리적 오류를 문법적 오류로 되게 해주는게 정보 은닉의 장점 중 하나다. 직접 접근했을 때 컴파일 에러가 발생하도록 강제한다. 멤버를 선언할 때, private을 붙여주면 같은 멤버 끼리는 공유할 수 있지만 클래스 외부에서 접근할 때는 컴파일 오류가 발생한다. 접근 수준 지시자 public: 어디서든 인스턴스 생성이 가능하다. protected default private
JAVA 08 패키지의 이해
·
Programming/Java
패키지 선언이 필요한 상황 1. 공간에서의 충돌 - 동일 이름의 클래스 파일을 같은 위치에 둘 수 없다. - 한 디렉토리 안에 이름이 같은 파일을 둘 수 없다. 2. 접근 방법에서의 충돌 클래스 생성을 생각해보자. new 클래스 이름을 생성할 때, 이름이 같으면 어떤 클래스인지 구분이 어렵다. 해결방법 1. 공간 충돌 - 경로를 달리한다. 2. 접근 충돌 - 경로를 이름에 명시한다. 패키지를 선언 1. 클래스 접근 방법 구분 2. 클래스의 공간 구분 패키지 선언 규칙 - 패키지 이름은 모두 소문자로 구성 - 인터넷 도메인 이름의 역순으로 이름을 구성 - 이름 끝에 클래스를 정의한 주체 또는 팀의 이름을 추가
JAVA 07(2) 생성자와 String 클래스
·
Programming/Java
컴파일러는 문자열("Happy")이 보이면 String 인스턴스를 생성해서 해당 문자열을 메소드의 인자에 전달한다. 해당 메소드는 인스턴스의 주소를 반환한다. 좋은 클래스 정의란? 인스턴스 구분을 위해 필요한 정보를 갖는 것이다. 생성자는 초기화를 위한 메소드를 대체한다. 생성자의 이름은 클래스의 이름과 동일하다. 생성자는 값을 반환하지 않고 반환형도 표시하지 않는다. 좋은 클래스는 생성자를 직접 정의한다.
JAVA 07(1) 클래스와 인스턴스
·
Programming/Java
프로그램은 데이터와 기능으로 구성되어 있다. 자바에서 데이터와 기능을 묶을 수 있는 도구를 클래스라고 한다. 클래스(class)는 객체를 만드는 설계도이다. 어느 무리의 객체를 특징 짓는 데에 공통적으로 갖춘 모양을 뽑아서 하나의 틀을 만든 것이다. 이런 과정을 '추상화'라고 한다. 인스턴스(instance)는 클래스를 new 명령문으로 메모리에 생성한 객체이다. 설계도를 통해 독립적인 객체를 만든 것이다. 인스턴스는 모두 메모리 공간을 차지한다.
JAVA 01 자바의 원리
·
Programming/Java
JDK 자바로 개발할 수 있도록 여러 기능들을 제공하는 패키지(키트) 환경변수 설정 환경변수 PATH란? 환경변수는 운영체제가 참조하는 변수이다. PATH는 실행파일을 찾기 위한 폴더들의 모음이다. 자바의 기본도구 javac.exe: 자바 컴파일러(Java Compiler) java.exe: 자바 런처(Java Launcher) - 명령 프롬프트는 path에 등록된 경로를 통해 찾는다. - path에 javac.exe와 java.exe 위치를 등록시킨다. - 환경 변수에 path를 등록한다. - 변수이름 : Path - 변수 값: bin 의 위치 자바의 실행 원리 - 운영체제는 자바 가상 머신(JVM)을 우선 실행한다. 자바 프로그램은 JVM 위에서 실행된다. 따라서, 운영체제는 JVM은 인식하지만 자바..
인터페이스(interface)
·
Programming/Java
인터페이스의 역할은?어떤 객체가 특정한 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메서드들을 구현해야 한다. 만약 인터페이스에서 강제하고 있는 메소드를 구현하지 않으면 이 애플리케이션은 컴파일 조차 되지 않는다. 인터페이스와 상속의 차이점은?상속은 상위 클래스의 기능을 하위 클래스가 물려 받는다.인터페이스는 하위 클래스에 특정한 메서드가 반드시 존재하도록 강제한다.package org.opentutorials.javatutorials.interfaces.example1; interface I{ public void z();} class A implements I{ public void z(){}} 클래스 A는 인터페이스 I를 '구현'한다 실질적인 쓰임개발자 A와 B가 계산기 기능이 ..