JAVA, JSP

java - 웹 표준, JDK, JRE, JVM, 추상화, 추상클래스, 추상 메서드, 다형성, 캡슐화, 상속, java 클래스 종류, java 환경변수 설정

suji0730 2024. 6. 28. 10:30

 

1) java 환경변수 설정

 

시스템 환경 변수 편집 > 시스템 속성 > 고급 > 환경변수 > 시스템 변수 새로 만들기(W) > 

변수 이름(N) : JAVA_HOME

변수 값(V) : JDK가 설치된 폴더의 경로 > 시스템 변수 새로 만들기(W) > 

변수 이름(N) : CLASSPATH

변수 값(V) : %JAVA_HOME%\lib > 시스템 변수에서 Path 더블클릭 > 환경 변수 편집 창 > 새로 만들기 > %JAVA_HOME%\bin > 제일 위로 이동

 

 

 

2) 웹 표준 

- 웹에서 표준적으로 사용되는 기술이나 규칙. 웹에서의 표준은 W3C의 토론을 통해 나온 권고안을 말하고, 권고안 이외 단계 수준의 스펙은 비표준이거나 독자 확장 요소를 의미하기 때문에 구분해서 사용해야 한다.

 

3) JDK : 개발자들이 JVM과 JRE에 의해 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해준다.

 

4) JRE : JVM을 생성하는 디스크 상의 부분

 

5) JVM : 프로그램을 실행하는 자바 플랫폼 구성요소

 

6) 추상화

추상화는 클래스들의 공통적인 요소를 뽑아서 상위 클래스를 만들어내는 것이다. 반드시 상위 클래스일 필요는 없어서, 공통적인 속성과 기능을 정의한 하위 클래스를 생성할 수도 있다. 한 마디로 추상화는 공통적인 속성과 기능을 정의함으로써 코드의 중복을 줄이고, 클래스 간 관계를 효과적으로 설정하고, 유지/보수를 용이하게 하는 것이다. 자바에서는 추상 클래스와 인터페이스라는 문법 요소를 통해 추상화를 구현한다.

 

6-1) 추상 클래스

추상 클래스는 한 마디로 미완성 설계도이다. 미완성이기 때문에 이를 기반으로 인스턴스를 생성할 수 없다. 오직 상속을 통해 하위 클래스에서만 완성될 수 있다. 클래스 역할을 못하는 추상 클래스가 필요한 이유는 이것이 새로운 클래스를 작성하는데 유용한 바탕이 되어주기 때문이다. 무에서부터 클래스를 만드는 것보다는, 추상 클래스라는 최소한의 틀에서 확장시키는 것이 편리하기도 하고 설계에 있어 유연함을 가져다준다.

 

6-2) 추상 메서드 (abstract method)
추상 메서드는 구현부가 없이 선언부만 있는 메서드이다. 추상 클래스와 마찬가지로 설계만 하고 구체적인 내용을 작성하지 않아 미완성 메서드이다.

 

 

7) 다형성

다형성이란 여러 개를 의미하는 poly와 형태 또는 실체를 의미하는 morphism의 결합어로, 하나의 객체가 여러 가지 형태를 가질 수 있는 것을 의미한다. 자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 즉, 상위 클래스 타입의 참조 변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 허용하여 상위 클래스가 동일한 메시지로 하위 클래스들이 서로 다른 동작을 할 수 있도록 한다. 다형성을 활용하면, 부모 클래스가 자식 클래스의 동작 방식을 알 수 없어도 오버라이딩을 통해 자식 클래스에 접근할 수 있다.
 
7-1)다형성의 장점
1. 유지보수 : 여러 객체를 하나의 타입으로 관리할 수 있어 유지보수가 용이하다.
2. 재사용성 : 객체의 재사용이 쉬워 재사용성이 높아진다.
3. 느슨한 결합 : 클래스 간의 의존성을 줄여 확장성은 높아지고 결합도는 낮아진다.


7-2) 다형성의 조건
1. 상위 클래스와 하위 클래스는 상속 관계여야 한다.
2. 다형성이 보장되기 위해 오버라이딩(하위 클래스 메서드의 재정의)이 반드시 필요하다.
3. 자식 클래스의 객체가 부모 클래스의 타입으로 형변환(업캐스팅)해야 한다.

 

 

8) 캡슐화

캡슐화는 데이터와 해당 테이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다. 캡슐화를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다. 캡슐화는 쉽게 이야기해서 속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만 노출하고 나머지는 모두 내부로 숨기는 것이다.

 

8-1) 캡슐화의 장점

1. 캡슐화를 하면 코드의 중복을 막을 수 있다.
2. 캡슐화는 객체에 대해서 알아야하는 지식의 양을 줄여준다.
3. 캡슐화를 하면 외부에서 조작하여 속성을 변경하는 일을 막을 수 있다.

 

 

9) 상속

상속(inheritance)이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 이러한 상속은 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 상속을 이용하면 기존에 정의되어 있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성할 수 있다. 이때 기존에 정의되어 있던 클래스를 부모 클래스(parent class) 또는 상위 클래스(super class), 기초 클래스(base class)라고도합니다. 그리고 상속을 통해 새롭게 작성되는 클래스를 자식 클래스(child class) 또는 하위 클래스(sub class), 파생 클래스(derived class)라고도 한다.

9-1) 상속의 장점
1. 기존에 작성된 클래스를 재활용할 수 있다.
2. 자식 클래스 설계 시 중복되는 멤버를 미리 부모 클래스에 작성해 놓으면, 자식 클래스에서는 해당 멤버를 작성하지 않아도 된다.
3. 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다.

 

10) java 클래스 종류

클래스는 두 가지 용도가 있다. 하나는 라이브러리(API)용이고 다른 하나는 실행용이다. 라이브러리 클래스는 다른 클래스에서 이용할 목적으로 설계된다. 프로그램 전체에서 사용되는 클래스가 100개라면 99개는 라이브러리이고 단 하나가 실행 클래스이다. 실행 클래스는 프로그램의 실행 진입점인 main() 메소드를 제공하는 역할을 한다.


10-1) 실행 클래스  : 코드를 실행할 때 제일 먼저 실행되는 클래스
10-2) 라이브러리 클래스 : 실행 클래스를 통해 호출하여 사용되는 클래스