JAVA
Public static void main(String[] args){
int ans= 0;
try {
int num = 10;
int div = 0;
ans = num / div;
} catch (ArithmeticException ae){
ans = 0;
} catch (Exception e){
System.out.println("Invalid calculation");
}
System.out.println("Answer = " + ans);
}
Try ~ catch 문은 예외처리할때 사용한다.
Exception의 범위가 더 큰 범위를 차지하기 때문에
먼저 ArithmeticException(자바 내장 예외클래스)를
실행해주어야 구문 오류를 발생하지 않을 수 있다.
또한 0으로 나누는 것은 PC에서는 실행할 수 없다.
해서 ArithmeticException(연산 예외 처리)가 실행된다.
System.out.print(Car.maxspeed);
Car.run2();
정적 필드와 정적 메소드에선 해당 클래스의 명을 직접 가지고와서 사용해도 실행이 가능하다.
인스턴스 필드
package ch05;
public class Car {
// 인스턴스 필드 선언
String model ;
int speed ;
// 정적 필드 선언
static String model2;
static int speed2;
static {
// 인스턴스 필드
model = "제네시스";
speed = 200;
// 정적 필드
model2="k5";
speed2 = 100
}
// 정적메소드
static void setSpeed2(int speed) {
this.model;
speed
speed2 = speed;
Play();
}
정적 블록 안에는 인스턴스 필드를 사용할 수 없고 정적 필드 사용이 가능하다.
또 정적 메소드 안에서는 this를 사용할 수 없고, 정적 메소드와 정적 필드만 사용 가능하다.
fibal 타입필드 [=초기값];
final 키워드는 클래스, 필드, 메소드에서 모두 사용 가능하다.
final 키워드를 사용하면 상속 및 재정의 할 수 없다.
package package1;
public class A {
// 필드선언
A a1 = new A(true);
A a2 = new A(1);
A a3 = new A("문자열");
// public 접근 제한 생성자 선언
public A(boolean b) {
// TODO Auto-generated constructor stub
}
// default(생략) 접근 제한 생성자 선언
A(int b) {
// TODO Auto-generated constructor stub
}
// private 접근 제한 생성자 선언
private A(String string) {
// TODO Auto-generated constructor stub
}
}
Public
: 모든 패키지 생성자를 호출할 수 있다.
: 모든 패키지 객체를 생성할 수 잇다.
default(생략)
: 같은 패기지에서만 생성자를 호출할 수 있다.
: 같은 패키지에만 객체를 생성할 수 잇다.
Private
: 클래스 내부의 생성자를 호출할 수 있다
: 클래스 내부에서만 객체를 생성 할 수 있다.