Java 프로그램은 서로의 메소드를 호출하여 함께 작동하는 객체 모음으로 생각할 수 있습니다. 다음은 클래스, 객체, 메소드 및 인스턴스 변수의 개념을 간략하게 소개합니다.
Object : 객체는 클래스의 인스턴스이며 상태와 동작을 갖습니다. 예를 들어, 개는 개체입니다. 상태에는 색깔, 이름, 행동이 포함됩니다. 꼬리 흔들기, 짖기, 먹기 등.
클래스 : 클래스는 객체 클래스의 동작과 상태를 설명하는 템플릿입니다.
메소드(Method ) : 메소드는 동작이며, 클래스는 여러 메소드를 가질 수 있습니다. 논리 연산, 데이터 수정 및 모든 작업은 메서드에서 완료됩니다.
인스턴스 변수 : 각 객체에는 고유한 인스턴스 변수가 있으며, 이러한 인스턴스 변수의 값에 따라 객체의 상태가 결정됩니다.
Hello World 문자열을 인쇄하는 간단한 Java 프로그램을 살펴보겠습니다.
공개 클래스 MyFirstJavaProgram {
/* 첫 번째 Java 프로그램.
* Hello World 문자열을 인쇄합니다.
*/
공개 정적 무효 메인(문자열 []args) {
System.out.println("Hello World"); // Hello World를 인쇄합니다.
}
}
다음은 이 프로그램을 저장, 컴파일 및 실행하는 방법에 대한 단계별 가이드입니다.
메모장을 열고 위 코드를 추가하세요.
파일 이름을 MyFirstJavaProgram.java로 저장합니다.
cmd 명령 창을 열고 대상 파일의 위치를 C:라고 가정하고 입력합니다.
명령줄 창에 javac MyFirstJavaProgram.java를 입력하고 Enter 키를 눌러 코드를 컴파일합니다. 코드에 오류가 없으면 cmd 명령 프롬프트가 다음 줄로 진행됩니다. (환경 변수가 모두 설정되어 있다고 가정)
그런 다음 java MyFirstJavaProgram을 입력하고 Enter 키를 눌러 프로그램을 실행합니다.
창에 Hello World가 표시됩니다.
C :> javac MyFirstJavaProgram.java
C :> java MyFirstJavaProgram
안녕하세요 세계
Java 프로그램을 작성할 때 다음 사항에 주의해야 합니다.
대소문자 구분 : Java는 대소문자를 구분합니다. 즉, Hello와 hello 식별자가 다릅니다.
클래스명 : 모든 클래스는 클래스명의 첫 글자를 대문자로 표기한다. 클래스 이름이 여러 단어로 구성된 경우 각 단어의 첫 글자를 대문자로 사용해야 합니다(예: MyFirstJavaClass).
메소드 이름 : 모든 메소드 이름은 소문자로 시작해야 합니다. 메서드 이름에 여러 단어가 포함된 경우 각 후속 단어의 첫 글자는 대문자로 표시됩니다.
소스 파일 이름 : 소스 파일 이름은 클래스 이름과 동일해야 합니다. 파일을 저장할 때 클래스 이름을 파일 이름으로 사용해야 하며(Java는 대소문자를 구분함) 파일 이름 접미사 .java를 사용해야 합니다. ( 파일명과 클래스명이 다를 경우 컴파일 에러가 발생합니다 .)
Main 메소드 항목 : 모든 Java 프로그램은 public static void main(String [] args)
메소드에서 실행을 시작합니다.
Java의 모든 구성 요소에는 이름이 필요합니다. 클래스 이름, 변수 이름, 메서드 이름을 모두 식별자라고 합니다.
Java 식별자와 관련하여 다음 사항에 유의해야 합니다.
모든 식별자는 문자(AZ 또는 az), 달러 기호($) 또는 밑줄(_)로 시작해야 합니다.
첫 번째 문자 뒤에는 문자(AZ 또는 az), 달러 기호($), 밑줄(_) 또는 숫자의 조합이 올 수 있습니다.
키워드는 식별자로 사용할 수 없습니다.
식별자는 대소문자를 구분합니다.
법적 식별자의 예: 연령, $salary, _value, __1_value
불법 식별자의 예: 123abc, -salary
다른 언어와 마찬가지로 Java는 수정자를 사용하여 클래스의 메서드와 속성을 수정할 수 있습니다. 수정자에는 두 가지 주요 유형이 있습니다.
액세스 제어 수정자: 기본값, 공개, 보호, 비공개
비액세스 제어 수정자: 최종, 추상, 정적, 동기화 및 휘발성
이후 장에서 Java 수정자에 대해 자세히 논의할 것입니다.
Java에는 주로 다음과 같은 유형의 변수가 있습니다.
지역 변수
클래스 변수(정적 변수)
멤버 변수(비정적 변수)
배열은 힙에 저장된 객체이며 동일한 유형의 여러 변수를 보유할 수 있습니다. 이후 장에서는 배열을 선언하고, 생성하고, 초기화하는 방법을 배우게 됩니다.
Java 5.0에는 변수를 미리 설정된 값으로 제한하는 열거형이 도입되었습니다. 열거형을 사용하면 코드의 버그를 줄일 수 있습니다.
예를 들어, 우리는 주스를 소형, 중형, 대형 컵으로 제한하는 주스 가게용 프로그램을 설계합니다. 이는 고객이 이 세 가지 크기 이외의 주스를 주문하는 것을 허용하지 않는다는 것을 의미합니다.
클래스 FreshJuice {
enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
FreshJuice크기 크기;
}
공개 클래스 FreshJuiceTest {
공개 정적 무효 메인(문자열 인수[]){
FreshJuice 주스 = new FreshJuice();
juice.size = FreshJuice.FreshJuiceSize.MEDIUM;
}
}
참고: 열거형은 개별적으로 또는 클래스 내부에서 선언될 수 있습니다. 메서드, 변수 및 생성자를 열거형으로 정의할 수도 있습니다.
Java 예약어는 다음과 같습니다. 이러한 예약어는 상수, 변수 및 식별자 이름에 사용할 수 없습니다.
키워드 | 설명하다 |
---|---|
추상적인 | 추상 메소드, 추상 클래스의 수정자 |
주장하다 | 조건이 충족되는지 확인 |
부울 | 부울 데이터 유형 |
부서지다 | 루프 또는 라벨 코드 세그먼트에서 벗어나기 |
바이트 | 8비트 부호 있는 데이터 유형 |
사례 | switch 문의 조건 |
잡다 | 예외 정보를 캡처하는 데 사용하세요. |
숯 | 16비트 유니코드 문자 데이터 유형 |
수업 | 클래스 정의 |
const | 사용되지 않음 |
계속하다 | 루프 본문의 나머지 부분을 실행하지 마십시오. |
기본 | switch 문의 기본 분기 |
하다 | 루프 문, 루프 본문은 적어도 한 번 실행됩니다. |
더블 | 64비트 배정밀도 부동 소수점 수 |
또 다른 | if 조건이 참이 아닐 때 실행되는 분기 |
열거형 | 열거형 |
연장하다 | 한 클래스가 다른 클래스의 하위 클래스임을 나타냅니다. |
결정적인 | 초기화 후에는 값을 변경할 수 없음을 나타냅니다. 메서드를 재정의할 수 없거나 클래스가 하위 클래스를 가질 수 없음을 나타냅니다. |
마지막으로 | 주로 프로그램의 견고성과 무결성을 위해 코드 실행을 완료하도록 설계되었으며 예외 발생 여부에 관계없이 코드가 실행됩니다. |
뜨다 | 32비트 단정밀도 부동 소수점 수 |
~을 위한 | for 루프 문 |
고토 | 사용되지 않음 |
만약에 | 조건문 |
구현하다 | 클래스가 인터페이스를 구현함을 나타냅니다. |
수입 | 가져오기 클래스 |
인스턴스 | 객체가 클래스의 인스턴스인지 테스트 |
정수 | 32비트 정수 |
인터페이스 | 메소드와 상수 정의만 있는 추상 유형인 인터페이스 |
긴 | 64비트 정수 |
토종의 | 표현 방법은 Java가 아닌 코드로 구현됩니다. |
새로운 | 새로운 클래스 인스턴스 할당 |
패키지 | 일련의 관련 클래스가 패키지를 형성합니다. |
사적인 | 클래스 내에서만 액세스할 수 있는 비공개 필드, 메서드 등을 나타냅니다. |
보호됨 | 해당 필드가 클래스, 해당 서브클래스 또는 동일한 패키지의 다른 클래스를 통해서만 액세스될 수 있음을 나타냅니다. |
공공의 | 공통 속성 또는 메서드를 나타냅니다. |
반품 | 메소드 반환 값 |
짧은 | 16자리 |
공전 | 클래스 수준에서 정의되고 모든 인스턴스에서 공유되는 항목을 나타냅니다. |
엄격한 | 부동 소수점 비교에는 엄격한 규칙이 사용됩니다. |
감독자 | 기본 클래스를 나타냅니다. |
스위치 | 선택문 |
동기화됨 | 한 번에 하나의 스레드에서만 액세스할 수 있는 코드 블록을 나타냅니다. |
이것 | 현재 인스턴스 호출 또는 다른 생성자 호출을 나타냅니다. |
던지다 | 예외를 던진다 |
던진다 | 메서드에서 발생할 수 있는 예외 정의 |
과도 현상 | 직렬화되지 않도록 필드 수정 |
노력하다 | 코드 블록이 예외를 처리해야 하거나 finally와 협력하여 예외가 발생하는지 여부에 따라 코드가 finally 실행될 것임을 나타냅니다. |
무효의 | Mark 메소드는 어떤 값도 반환하지 않습니다. |
휘발성 물질 | 태그 필드는 동기화 없이 여러 스레드에서 동시에 액세스할 수 있습니다. |
~하는 동안 | while 루프 |
C/C++와 유사하게 Java는 한 줄 주석과 여러 줄 주석도 지원합니다. 주석의 문자는 Java 컴파일러에서 무시됩니다.
공개 클래스 MyFirstJavaProgram{
/* 이것은 첫 번째 Java 프로그램입니다. *Hello World를 인쇄합니다.
* 여러줄 주석의 예시입니다 */
공개 정적 무효 메인(문자열 []args){
// 한줄 주석 예시 /* 이것도 한줄 주석 예시 */
System.out.println("안녕하세요 월드");
}
}
빈 줄이나 주석만 있는 줄은 Java 컴파일러에서 무시됩니다.
Java에서는 클래스가 다른 클래스에서 파생될 수 있습니다. 클래스를 생성 중이고 필요한 속성이나 메서드가 있는 클래스가 이미 있는 경우 해당 클래스에서 새로 생성된 클래스를 상속할 수 있습니다.
상속을 사용하면 코드를 다시 작성할 필요 없이 기존 클래스의 메서드와 속성을 재사용할 수 있습니다. 상속받은 클래스를 슈퍼클래스, 파생된 클래스를 서브클래스라고 합니다.
Java에서 인터페이스는 객체 간 통신을 위한 프로토콜로 이해될 수 있습니다. 인터페이스는 상속에서 매우 중요한 역할을 합니다.
인터페이스는 파생 클래스에서 사용할 메서드만 정의하지만 메서드의 구체적인 구현은 완전히 파생 클래스에 따라 다릅니다.
다음 섹션에서는 Java 프로그래밍의 클래스와 객체를 소개합니다. 그러면 Java의 클래스와 객체에 대해 더 명확하게 이해할 수 있습니다.