2023. 10. 22. 12:51ㆍ언어들/자바
Java 플랫폼이라 부르는 별도의 실행환경이 있기 떄문에 운영체제와 무관하게 Java 플랫폼만 설치되어 있으면 어디에서든 실행이 가능하다. 이러한 특징을 "플랫폼에 독립적"이라고 한다.
멀티 스레딩을 지원한다.
스레드란 하나의 프로그램 내부에서 진행될 수 있는 세부 작업흐름이라고 할 수 있다. 예를 들어 메신저에서 채팅을 하면서 동시에 파일을 주고받을 수 있는데, 메신저 프로그램 안에서 "채팅" 스레드와 "파일 주고받기" 스레드가 동시에 진행되는 멀티 스레딩 프로그램이 된다.
C프로그램과 Java 프로그램의 실행환경
자바 프로그램의 실행
소스 프로그램 확장자는 ".java"
바이트 코드
- java 소스를 컴파일한 결과물
- 확장자는 .class이며 클래스 파일이라고 부름
- 자바 플랫폼의 java VM에서 실행 가능한 코드
- write once, run anywhere
Java 플랫폼의 구성
간단한 Java 프로그램
public class HelloApplication{
public static void main(String args[]){
System.out.println("Hello, Java Application!");
}
}
메모장을 이용하여 적당한 폴더에 위와 같은 소스 코드를 작성 후 저장한다.
파일의 이름은 class 이름과 같은 HelloApplication과 똑같아야 한다.
javac [파일이름].java 로 컴파일 실행
java [파일이름] 클래스파일 실행
객체지향 프로그래밍
유형 또는 무형의 대상인 객체(object)는 상태와 동작을 가진다. 대상을 설명할 때 그 대상이 가질 수 있는 상태와 동작을 함께 설명하면 그 대상을 좀 더 쉽게 이해할 수 있다.
자바는 프로그래밍의 대상을 상태와 동작을 갖는 객체라고 가정한다. C는 대상은 데이터가 되고 데이터 처리 기능을 함수로 따로 정의한다. 하지만 객체 지향에서는 데이터와 함수를 클래스라는 새로운 개념으로 통합하여 표현한다. 클래스를 통해 객체가 만들어지며 객체는 데이터를 의미하는 상태와 함수를 의미하는 동작을 함께 갖는다.
C / Java 프로그램 비교
C
int e[2]; //영어 성적을 위한 변수
int m[2]; //수학 성적을 위한 변수
void input_grade( ) { //영어, 수학 성적을 입력 받는 함수
e[0] = 90; //첫 번째 학생의 영어 성적
e[1] = 80; //두 번째 학생의 영어 성적
m[0] = 85; //첫 번째 학생의 수학 성적
m[1] = 80; //두 번째 학생의 수학 성적
}
void output_grade( ) { //총점 출력하는 함수
printf("%d, %d", e[0]+m[0], e[1]+m[1]);
}
void main(void) {
input_grade( );
output_grade( );
}
Java
class Grade {
int e; //영어 성적을 위한 변수
int m; //수학 성적을 위한 변수
void output_grade( ) { //총점을 구하는 메소드
System.out.println(e+m);
}
}
public class GradeOutput {
public static void main(String args[ ]) {
Grade g1, g2; //2명의 성적을 표현하는 변수 선언
g1 = new Grade( ); //객체의 생성
g2 = new Grade( );
g1.e = 90; g1.m = 85; //점수 입력
g2.e = 80; g2.m = 80;
g1.output_grade( );
g2.output_grade( );
}
}
클래스와 객체
추상화
✓ 구체적인 모든 사실이 아니라 전형적이고 필요한 부분만을 발췌하여 사물을 이해하고 표현하는 것
클래스
✓ 클래스는 객체를 만들기 위한 모형 또는 틀
✓ 공통적인 특징을 가지는 객체들을 추상화하기 위한 수단
✓ 객체의 상태는 필드(데이터)로, 행위는 메소드로 구현됨
✓ 객체는 특정 클래스의 인스턴스
상속
클래스와 클래스 간의 관계를 나타내는 용어로, 클래스 A가 클래스 B로부터 B의 구성요소인 필드와 메소드를 물려받았을 때 A는 클래스 B를 상속한다 또는 클래스 A는 클래스 B로부터 상속받는다라고 말한다.
A는 B의 서브, 자식, 패생, 하위 클래스라고 한다. 클래스 B는 A의 슈퍼, 부모, 기반, 상위 클래스라고 한다.
여러 서브 클래스의 공통적인 특성 및 기능을 추상화하여 일반화 시켜 슈퍼 클래스를 만들어 재사용성 높이고, 간결해진 프로그램이 쉬워진다.
- Java 프로그램의 기본 구성단위는 클래스이다.
- Java에서는 변수의 자료형에 대한 검사가 엄격하다.
- Java 프로그래밍을 위해서 JDK를 설치해야 한다.
- Java 소스는 컴파일된 후, 바이트코드가 Java 플랫폼에서 실행된다.
- Java 플랫폼은 Java VM과 Java API로 구성된다.
- main( ) 메소드의 형식은 public static void main(String[ ] args) 이다.
'언어들 > 자바' 카테고리의 다른 글
독하게 시작하는 JAVA part1-섹션 03 (2) | 2024.12.12 |
---|---|
독하게 시작하는 JAVA part1-섹션 02 (1) | 2024.12.12 |
독하게 시작하는 JAVA part1-섹션 01 (0) | 2024.12.12 |
자바 기본 문법(1) (0) | 2023.10.22 |
String 클래스 (0) | 2023.07.31 |