Exception - CheckedException(Exception) - UnCheckedException(RuntimeException) #CheckedException 1.예외(Exception)가 발생한 메소드 내에서 직접 처리 (try-catch-finally) try{ 예외 발생 가능성이 있는 문장들; } catch(예외타입 매개변수명){ 예외타입의 예외가 발생할 경우 처리 문장들; } finally{ 항상 수행할 필요가 있는 문장들; } try -예외가 발생할 가능성이 있는 범위를 지정 catch -예외가 발생하면 try 블록의 나머지 문장들은 수행되지 않고, JVM이 예외발생시키며 발생한 예외 객체 타입이 동일한 catch 블록을 수행한다. finally -예외 발생..
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 import java.awt.*; import java.awt.event.*; class HwFrame extends Frame{ static TextField tf1,tf2,tf3; static Label L1,L2; HwFrame(){ tf1=new TextField(""); L1=new Label("+"); tf2=new TextField(..
# 내부클래스 1 내부멤버클래스 2 내부로컬클래스 3 내부무명클래스 # 내부멤버클래스 [ex] 클래스주소.멤버변수 클래스주소.메서드() 클래스주소.new 내부멤버클래스() 내부클래스는 외부클래스의 모든 멤버변수와 메서드에 주소생성없이 접근할 수 있다. # 내부로컬클래스 내부로컬클래스에서는 로컬변수를 접근할 수 없다. 만약 로컬변수에 접근하고 싶다면 final선언해야한다. # 내부무명클래스 [sy] new 상위클래스명(){}; 객체를 전달하는 곳에 위치한다. 클래스선언과 객체생성이 한곳에 묶여져 있다. 객체를 한번만 생성 할 수 있다. ex) 객체가 들어올 수 있는 위치 세곳(//here) class A{} class B{ void a(A o){} A b(){ return //here } void c(){..
# 자바의 진수표현 0b숫자 --> 2진수 0숫자 --> 8진수 0x숫자 --> 16진수 [ex] class A{ public static void main(String args[]){ int a=0b10; // 2^1*1 + 2^0*0 int b=010; // 8^1*1 + 8^0*0 int c=0x10; // 16^1*1 + 16^0*0 System.out.println(a); System.out.println(b); System.out.println(c); } } [ex] int a=0x41; --> a : 65 유니코드표 16진수로 표현되어져 있음 char a='\u0041'; System.out.println(a); // A
# 상수 : 모든객체가 공유해야(static)하고 한번결정된 값은 마지막(finial)이어야하는 것 상수는 보통 변수명을 대문자로 선언하자는 관례적인 규칙이 있다. [ex] class A{ static final int B=100; static int c=200; } class B{ public static void main(String args[]){ System.out.println(A.B); System.out.println(A.c); } } # 인터페이스 -인터페이스 안에는 상수와 추상메서드만 쓸 수 있다. [sy] interface 인터페이스{ 상수 추상메서드 } ex) interface A{ int a=100; // public static final int a=100; --> public ..
자료형변환 -다형적변수로 자식의 메서드중에서 오버라이딩되지 않는 메서드를 호출할때 형변환을 해야한다. class A{ void a(){System.out.println(1);} } class B{ public static void main(String args[]){ Object o=new A(); //o.a(); // here } } [an1] A o2=(A)o; o2.a(); [an2] ((A)o).a(); # ClassCastException : 클래스변환에러 [ex] class Animal{} class Dog extends Animal{} class Cat extends Animal{} class A{ public static void main(String args[]){ Animal..
# 기타제어자 static, final, abstract # static 의미 : 클래스에 속한것 클래스명.멤버변수 -->클래스변수 클래스명.메소드 ---> 클래스메소드 위치 : 멤버변수앞, 메서드앞 ex) static int a=10; // 클래스변수 -->클래스변수 : 모든객체가 공유하는 변수 int b=20; // 객체변수 * static 메서드내에서는 static이 아닌 메서드나 맴버변수는 접근 할 수 없다. # final 의미 : 마지막이라는 의미 위치 : 클래스앞(상속금지), 메서드앞(오버라이딩금지), 변수앞(재할당금지) * 멤버변수는 예외적으로 생성자내에서 값할당이 허용된다. 메서드내에서는 재할당 금지~ # abstract 의미 : 추상적이라는 의미 위치 : 클래스앞, 메서드앞 추..
객체지향언어 : java, c++, c# 객체지향언어의 3가지 특징 1.상속 2.다형성 3.완전캡슐화 # 다형적변수 자식의 메서드중에서 오버라이딩된 메서드만 접근할 수 있다. [sy] 부모 다형적변수=new 자식(); 자식 다형적변수=new 부모(); // 컴파일에러 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [ex] class A{} class B exstends A{} class C{ public static void main(String args[]){ A o1=new A(); B o2=..
메서드 오버로딩 하나의 클래스에 이름이 같은 메서드를 여러개 선언. 단,매개변수의 자료형과 갯수로 구분할 수 있어야 한다. 이때 반환형은 메서드 오버로딩과 아무런 관련이 없다. class A{ void a(){} void a(int v){} void a(int v1, int v2){} void a(String v){} void a(int v1, String v2){} int a(){} // 컴파일에러 (매개변수 같음) } 메서드오버라이딩 부모메서드를 자식클래스에서 재정의하는 경우 1. 메서드의 시그너처는 같아야한다. 2. 접근제어는 좁아질 수 없다. 3. private, static , final메서드는 오버라이딩 할 수 없다. 4. Exception추가는 불가능하다. [ex] class A..
# 접근제어자 : 클래스앞, 멤버변수앞, 생성자앞, 메서드앞 클래스앞에 선언될 수 있는 접근제어자 : public,default public > protected > default > private public : 접근허용 protected : 접근허용(같은패키지일때, 상속관계일때) 접근금지(다른패키지일때) default : 접근허용(같은패키지일때) 접근금지(다른패키지일때) private : 접근금지 [sy] [접근제어자] class 클래스명{ [접근제어자] 자료형 멤버변수명; [접근제어자] 생성자(){} [접근제어자] 반환형 메서드명(){} }