Java의 while 루프는 각 반복이 시작될 때 루프 연속 조건을 테스트한 후 하나 이상의 명령문을 실행합니다. 그러나 do-while 루프는 첫 번째 반복이 완료된 후 루프 연속 조건을 테스트합니다. 따라서 do-while 루프는 루프 논리의 한 번 실행을 보장하지만 while은 그렇지 않습니다. 예 public class WhileAndDoWhileLoop { public static void main(String args[]) { int i=5; &nb
IllegalArgumentException 메서드에 잘못된 인수가 전달되었음을 나타내기 위해 throw됩니다. 이 예외는 RuntimeException 을 확장합니다. 클래스이므로 JVM(Java Virtual Machine) 작동 중에 throw될 수 있는 예외에 속합니다. 확인되지 않은 예외이므로 메서드나 생성자의 throw 절에서 선언할 필요가 없습니다. java.lang.IllegalArgumentException의 원인 인수가 범위를 벗어날 때. 예를 들어 백분율은 1에서 100 사이여야 합니다. 사용자가 101을 입
런타임 예외는 발생할 때 프로그램 또는 애플리케이션이 충돌하거나 중단될 것으로 예상되는 Java 프로그래밍 언어의 모든 예외에 있는 상위 클래스입니다. 런타임 예외로 간주되지 않는 예외와 달리 런타임 예외는 확인되지 않습니다. 런타임 예외는 일반적으로 프로그램이 처리해야 하는 조건보다는 프로그래머의 오류를 표시합니다. 런타임 예외는 발생할 수 없는 조건에서도 사용됩니다. 프로그램에 메모리가 부족할 때 런타임 예외로 표시하는 대신 프로그램 오류가 발생한다는 점에 유의해야 합니다. 가장 일반적인 런타임 예외는 NullPointerE
정적 블록이 실행되기 전에도 클래스 로딩 시 정적 변수가 생성되며 정적 블록의 목적은 정적 변수에 값을 할당하는 것입니다. 정적 변수는 정의된 클래스의 모든 인스턴스 간에 공유되는 값을 저장하고 정적 블록은 클래스가 처음 로드될 때 실행되는 코드 섹션입니다. 클래스 로딩 시 실행되어야 하는 로직을 원한다면 해당 로직은 클래스 로딩 시 실행될 수 있도록 정적 블록 내부에 배치해야 합니다. JVM은 클래스의 정적 멤버를 읽기 위해 다음 단계를 따릅니다. 정적 멤버를 위에서 아래로 식별 정적 변수 할당 및 정적 블록을 위에서 아래로 실
인터페이스는 Java에서 다른 인터페이스를 구현할 수 없습니다. Java의 인터페이스는 본질적으로 특별한 종류의 클래스입니다. 클래스와 마찬가지로 인터페이스에는 메서드와 변수가 포함됩니다. 클래스와 달리 인터페이스는 항상 완전히 추상적입니다. 인터페이스는 인터페이스 키워드를 제외하고는 클래스처럼 정의됩니다. 클래스 대신에 인터페이스에서 선언된 변수는 정적 입니다. 및 최종 인터페이스에 정의된 메서드는 공개 추상입니다. 방법. 인터페이스는 확장할 수 있습니다 인터페이스는 여러 개이지만 하나의 인터페이스는 구현할 수 없습니다. 인
생성자 객체와 관련하여 특정 클래스의 비정적 멤버를 초기화하는 것입니다. 인터페이스의 생성자 인터페이스 Java에는 생성자 가 없습니다. 인터페이스의 모든 데이터 멤버가 공개 정적 최종 이기 때문입니다. 기본적으로 상수입니다(선언 시 값 할당). 인터페이스에 생성자를 통해 초기화할 데이터 멤버가 없습니다. 메소드를 호출하려면 객체가 필요합니다. 인터페이스의 메서드에는 본문이 없기 때문에 인터페이스에서 메서드를 호출할 필요가 없습니다. 인터페이스에서 메소드를 호출할 수 없기 때문에 인터페이스에 대한 객체를 생성할 필요도 없고
예, Java에서 추상 메서드가 없는 추상 클래스를 선언할 수 있습니다. 추상 클래스 구현을 숨기고 사용자에게 함수 정의를 보여주는 것을 의미합니다. 추상 클래스 추상적 방법을 모두 사용 및 비추상적 방법 . 추상 클래스의 경우 , 우리는 객체를 직접 생성할 수 없습니다. 하지만 간접적으로 우리는 서브클래스 객체를 사용하여 객체를 생성할 수 있습니다. 자바 추상 클래스 기본 동작을 구현하는 인스턴스 메서드를 가질 수 있습니다. 추상 클래스 한 번에 하나의 클래스 또는 하나의 추상 클래스만 확장할 수 있습니다. 클래스를 추상
자바 메인() 메서드는 항상 정적이므로 컴파일러는 개체를 생성하지 않거나 클래스의 개체를 생성하기 전에 호출할 수 있습니다. 모든 자바 프로그램에서 main() 메소드는 컴파일러가 프로그램 실행을 시작하는 시작점입니다. 따라서 컴파일러는 main() 메서드를 호출해야 합니다. main()인 경우 정적이 아닌 경우 main()을 호출하는 동안 메소드 JVM은 해당 클래스를 인스턴스화해야 합니다. 인스턴스화하는 동안 해당 클래스의 생성자를 호출해야 하지만 해당 클래스의 생성자가 인수를 취하면 모호성이 있습니다. 클래스의 정적 메소
예, 기본() 메소드를 최종 으로 선언할 수 있습니다. 자바에서. 컴파일러는 오류를 발생시키지 않습니다. 최종 키워드를 입력하면 해당 메소드가 최종 메소드가 됩니다. . 최종 방법의 주요 용도 Java에서는 재정의되지 않습니다. 최종 방법을 재정의할 수 없습니다. 하위 클래스에서. 상속을 사용 중이고 하위 클래스에서 재정의하지 않을 메서드가 필요한 경우 이 메서드를 하위 클래스에서 재정의할 수 없도록 final로 만들어야 합니다. f에 액세스할 수 있습니다. 최종 방법 하위 클래스에 있지만 최종 메서드를 재정의할 수 없습니다.
Java.lang.Object class는 java.lang 패키지에 있는 클래스 계층의 루트 또는 슈퍼클래스입니다. . 사전 정의된 모든 클래스와 사용자 정의 클래스는 개체 의 하위 클래스입니다. 수업. 객체 클래스가 슈퍼클래스인 이유 재사용성 모든 개체에는 11개의 공통 속성이 있으며 이러한 속성은 모든 Java 개발자가 구현해야 합니다. 개발자의 부담을 줄이기 위해 SUN은 이 11가지 속성을 모두 11가지 메서드로 구현하여 Object라는 클래스를 개발했습니다. 이러한 모든 메서드는 모든 하위 클래스에 공통적인 일반 논리
우리는 자바에서 우리 자신의 예외를 만들어야 합니다. 자체 예외 클래스를 작성할 때 다음 사항을 염두에 두십시오. 모든 예외는 Throwable의 자식이어야 합니다. 핸들 또는 선언 규칙에 의해 자동으로 적용되는 확인된 예외를 작성하려면 예외 클래스를 확장해야 합니다. 런타임 예외를 작성하려면 RuntimeException 클래스를 확장해야 합니다. 아래와 같이 Exception 클래스를 정의할 수 있습니다. class MyException extends Exception { } 우리는 Exception 클래스를 확장하여 우
자바의 클래스 유형 콘크리트 수업 추상 메서드가 없는 일반 클래스나 부모 클래스 또는 인터페이스의 모든 메서드 구현 및 자체 메서드가 있는 클래스는 구체 클래스입니다. 예 public class Concrete { // Concrete Class static int product(int a, int b) { return a * b; } public static void main(String args[]) { &nb
기본 생성자 기본 생성자는 0 인수 생성자 입니다. 슈퍼 클래스 생성자에 대한 인수 없는 호출이 포함되어 있습니다. 새로 생성된 객체에 기본값을 할당하는 것은 기본 생성자의 주요 책임입니다. 컴파일러는 프로그램이 클래스에 생성자를 작성하지 않는 경우에만 코드에 기본 생성자를 작성합니다. 기본 생성자의 액세스 수정자는 항상 클래스 수정자와 동일하지만 이 규칙은 공개 에만 적용됩니다. 및 기본값 수정자. 컴파일러는 언제 기본 생성자를 추가할까요? 컴파일러는 프로그래머가 코드에 생성자를 작성하지 않은 경우에만 코드에 기본 생성자를
이름 지정 규칙 Java에서는 프로그램을 읽기 쉽게 만들어 프로그램을 더 쉽게 이해할 수 있습니다. Java에서 클래스 이름은 일반적으로 명사여야 합니다. , 제목의 경우 각 개별 단어의 첫 글자를 대문자로 표시합니다. 인터페이스 이름은 일반적으로 형용사, 여야 합니다. 제목 케이스에 각 개별 단어의 첫 글자를 대문자로 표시합니다. 자바 명명 표준을 따라야 하는 이유 소스 코드를 읽고 이해하는 데 필요한 노력을 줄이기 위해 코드 검토가 구문 및 명명 표준에 대해 논쟁하는 것보다 더 중요한 문제에 집중할 수 있도록 합니다. 코드
메서드 재정의 Java의 런타임 메소드 바인딩 기능으로 인해 작동합니다. 따라서 Java 컴파일러가 메서드에 대해 정적 바인딩을 수행하도록 강제하면 파생 클래스에서 해당 메서드가 재정의되는 것을 방지할 수 있습니다. Java에서 3가지 방법으로 메서드 재정의를 방지할 수 있습니다. 기본 클래스에서 메소드를 final로 지정 기본 클래스에서 메서드를 정적으로 만들기 기본 클래스에서 메서드를 비공개로 설정 최종 방법은 재정의할 수 없습니다. 메소드를 final로 만들면 파생 클래스가 이 특정 메소드를 재정의할 수 없다는 제한이
단일 Java 프로그램에는 둘 이상의 클래스가 포함되며 Java에서는 두 가지 방법으로 가능합니다. 단일 자바 프로그램에서 여러 클래스를 구현하는 두 가지 방법 중첩 클래스 중첩되지 않은 여러 클래스 컴파일러가 중첩되지 않은 여러 클래스에서 작동하는 방식 아래 예에서 Java 프로그램은 두 개의 클래스를 포함합니다. 하나는 클래스 이름인 Computer이고 다른 하나는 랩탑입니다. 두 클래스 모두 고유한 생성자와 메서드가 있습니다. 메인 메서드에서 두 클래스의 개체를 만들고 해당 메서드를 호출할 수 있습니다. 예시 public
상수는 값이 할당되면 변경할 수 없는 변수입니다. . Java에는 상수에 대한 기본 제공 지원이 없습니다. 상수는 우리 프로그램을 다른 사람들이 더 쉽게 읽고 이해할 수 있도록 합니다. 또한 상수는 우리 애플리케이션뿐만 아니라 JVM에서도 캐시되므로 상수를 사용하면 성능을 향상시킬 수 있습니다. 변수를 상수로 정의하려면 final 변수 선언 앞. 구문 final float pi = 3.14f; 위의 문장은 float 변수 pi를 값이 3.14f인 상수로 선언합니다. 프로그램의 어느 시점에서도 pi 값을 변경할 수 없습니다. 나
아니요, 추상 클래스의 개체를 만들 수 없습니다. 그러나 추상 클래스의 참조 변수를 만들 수 있습니다. 참조 변수는 파생 클래스(추상 클래스의 하위 클래스)의 개체를 참조하는 데 사용됩니다. 추상 클래스는 구현을 숨기고 사용자에게 함수 정의를 보여주는 것을 의미하며 이를 추상 클래스라고 합니다. Java 추상 클래스는 요구 사항과 추상 클래스에 대해 갈 수 있는 부분적 구현을 알고 있는 경우 기본 동작을 구현하는 인스턴스 메서드를 가질 수 있습니다. 예 abstract class Diagram { dou
인터페이스는 계약 동작을 정의하는 데 사용할 수 있으며 상호 작용하는 두 시스템 간의 계약 역할도 할 수 있지만 추상 클래스는 주로 하위 클래스의 기본 동작을 정의하는 데 사용됩니다. 즉, 모든 자식 클래스가 동일한 기능을 수행해야 합니다. 추상 클래스를 사용하는 경우 추상 클래스는 파생 클래스에 공통 기본 클래스 구현을 제공하므로 상속 개념을 사용하는 경우 좋은 선택입니다. 비공개 멤버를 선언하려는 경우 추상 클래스도 좋습니다. 인터페이스에서 모든 메소드는 공개되어야 합니다. 미래에 새로운 메서드를 추가하려면 추상 클래스가 더
던질 수 있음 class는 Java의 모든 오류 및 예외의 상위 클래스입니다. 이 클래스의 인스턴스인 개체는 Java Virtual Machine에 의해 throw됩니다. 또는 던지기 로 던질 수 있습니다. 성명. 마찬가지로 이 클래스나 그 하위 클래스 중 하나는 catch 절의 인수 유형이 될 수 있습니다. 두 하위 클래스의 인스턴스 오류 및 예외 예외적 상황이 발생했음을 나타내는 데 사용되며, 이러한 인스턴스는 관련 정보를 포함하기 위해 예외적 상황의 맥락에서 생성됩니다. Throwable 클래스의 일반적으로 사용되는 예