Java

    JAVA 웹 개발 Day10 (Code2): 예외 처리

    TestEx01. package day10; public class TestEx01 { public void func() { //변수는 트라이캐치 바깥에서 선언하기! try { //제어문 if for while //메서드 호출 //객체 생성 }catch(Exception e) { //예외 발생시 처리코드 } } public static void main(String[] args) { try { System.out.println(args[0]); //에러 발생 }catch(ArrayIndexOutOfBoundsException e) { //에러에 맞는 변수를 찾아서 System.out.println("인수를 입력 안하고 실행하셨습니다");//여기로 온다. System.out.println(e); } } }..

    JAVA 웹 개발 Day10 (Code1) 싱글턴, 내부 클래스, 익명 클래스

    SingleT. package day10; //싱글턴 만들기. class SingleT{ //싱글턴으로 만들면 클래스 내부에 있는거 전부 공유해서 쓸 수 있음. static int a= 10; //공용 변수 int b=20; //원하는 변수 다 만들어도 됨. private static SingleT instance = new SingleT(); //외부에서 인스턴스 값변경 못하게 프라이빗 붙여준다. //미리 한번만 로딩되게 스태틱 붙인다. private SingleT() {}; //생성자도 프라이빗으로 막아논다. public static SingleT getInstance() { //스태틱이 없으면 메인에서 객체 생성을 해야하기 때문에 여기도 스태틱을 붙여준다. System.out.println(inst..

    JAVA 웹 개발 Day10 (Note2): 익명 클래스, 예외 처리, 기본 정리

    익명 클래스 anonymous class : 이름이 없는 클래스 객체 이름이 없지만 클래스를 정의하고 동시에 객체를 생성함. 변수의 초기값, 지역변수의 초기값, 매개변수의 매개 값으로 주로 대입됨. 단독으로 생성 불가, 클래스를 상속하거나 인터페이스를 구현해야 생성 가능. 단발성으로 급하게 사용해야 하는 경우, 빨리 써야 하는데 정의가 안되어 있으면 한방에 객체 생성부터 변수까지…… 1. 구조 new 클래스 명(){ //클래스 정의 } new 인터페이스명(){ //메서드 오버 라이딩 } 예외 처리 Exception handling 코드로 발생할 수 있는 에러를 미리 진단하고, 해결 방안을 코드로 처리해 놓은 것. 어떤 에러가 발생할 수 있겠다 예상하고 잘 무마해서 나머지가 잘 동작할 수 있게끔 컴파일 에..

    JAVA 웹 개발 Day10 (Note1): 싱글턴, 내부 클래스

    2022/2/18 싱글턴 Singleton (싱글 인스턴스/ 객체 하나) /*객체 생성을 한 개만 해서 같이 써라. 객체 생성을 하나만 하고 더 못 만들게 하는 것. 요게 필요하면 하나만 가져다 써라. 프로젝트에서 단 한 개의 객체만 만들도록 제한을 하는 경우가 있다. 프라이빗 접근 제어자를 붙여서 외부에서 생성자를 호출 못하게 막아버림. 객체 생성 못하게 막겠다. 그리고 자신 타입의 스태틱 변수를 싱글턴 클래스 변수 안에 내 클래스 변수만 만들어 놓으면 외부에서 뉴를 못하게 막았으니까 아예 외부에서는 객체 생성을 못함. 내가 내 안에다가 객체 생성하는걸 미리 써놓는 것. 한 번만 하게 스태틱을 붙여 놓는 것. 스태틱 붙여서 미리 만들어 놓은걸 다음부터는 빌려 쓰는 것 한 번만 객체 생성해서 로딩해라 스..

    JAVA 자바 웹 개발 Day09 (Code)

    110. 다형성 package day09;//다형성 class A{ int x;} //x class B extends A{int y;} //x,y public class Test110 { public static void main(String[] args) { // 기존에 객체 생성하던 방식 A a = new A(); B b = new B(); //다형성: 부모 타입의 변수에 자식 객체를 넣는다. A a1= new B(); System.out.println(a1.x); //부모 객체가 자식 변수에 들어가는건 안된다. //B b1 = new A(); } } 부모 타입의 변수에 자식의 객체를 넣어 생성하였다. 부모는 자식 클래스 안에 뭐가 들어있는지 모르기 때문에 자식 클래스에 있는 변수를 사용할 수는 없다..

    JAVA 자바 웹 개발 Day09 (Note): 다형성, 추상 클래스, 인터페이스

    2022/2/17 다형성 Polymorphism 여러 가지 형태를 가질 수 있는 능력. 상속 관계에서 성립 가능한 문법. 참조형의 업/다운 캐스팅 (참조형을 형 변환하는 거처럼 보인다……) 부모 타입의 변수에 자식 객체를 집어 넣는 것. 변수보다는 메서드 때문에 다형성을 하는 것. 오버 라이딩된 메서드를 사용하게 해 주는 게 목적이다. 1. instanceof 연산자: 참조하는 변수가 가리키는 인스턴스 (객체)의 실제 타입을 체크하는 데 사용. 참조 변수 instanceof 클래스명 -> true/false (참조변수가 클래스의 객체냐~?) 바로 위의 부모부터 조상까지 모두 true로 리턴. 내 아래 자식이나 아예 다른 클래스는 false. 추상 클래스 1. 개발할 때, 밑그림을 그리는 것. 설계 쪽에 ..

    JAVA 자바 웹 개발 Day7 (연습 문제 85~90)

    85. package day07; /* * main() 메서드를 실행하였을때 예시와 같이 출력 되도록 Tv 클래스를 작성하세요. * 콘솔 출력예) LG에서 만든 2022년형 45인치 TV */ class Tv{ String made; int year; int inch; Tv(String made, int year, int inch){ this.made = made; this.year = year; this.inch =inch; } void show() { System.out.println(made +"에서 만든 " + year+"년형 " + inch +"인치 TV"); } } public class Test85 { public static void main(String[] args) { Tv tv = n..

    JAVA 자바 웹 개발 Day08 (Code)

    100. final final class Super{ } class Sub extends Super{ } Super클래스는 final 이기 때문에 상속이 불가. class Super{ final void add() { System.out.println("haha"); } } class Sub extends Super{ void add() { //이게 오버라이딩. 위에 final 메서드로 만들었기 때문에 오버라이딩 불가. System.out.println("hoho"); } } Super 클래스는 Sub 클래스로 상속이 가능하나, Super 클래스 안에 있는 void 메서드가 final이기 때문에 상속이 불가하다. class Sup{ /*final int x = 10; Sup(int x){ this.x =..

    JAVA 자바 웹 개발 Day08 (Note): final, 상속 (접근 제어자, 생성자), 오버 라이딩

    2022/2/16 static: 모두가 공유하고 일정하게 보존된 데이터가 필요할 때 static으로 만든다. static 메서드는 객체 생성 없이 바로 사용 가능.-> static 메서드는 static 멤버만 접근 가능 (인스턴스 x) -> static메서드에서 this 키워드 사용할 수 없다. (this는 new를 해야 생기기 때문에 new 없이 사용하는 static에서는 사용 불가) final: 1. final 클래스: 클래스 앞에 final이 붙으면, 상속할 수 없음을 지정함 -> 부모가 될 수 없다. fainal class FinalClass {} 2. final 메서드: 메서드 앞에 붙으면, 오버 라이딩을 할 수 없음을 선언함. final int finalMethod(){…} 3. final 변..

    JAVA 자바 웹 개발 Day7 (Code2 )

    78. package day07; class Circle2{ int radius; Circle2(){} Circle2(int radius){ this.radius = radius; } Circle2 getCircleObj() { //메서드임. 리턴타입 써클2 System.out.println("getCircleObj" + this); return this; //디스의 리턴타입은 써클2 } } public class Test78 { public static void main(String[] args) { Circle2 c = new Circle2(); System.out.println("maic c:" + c); //c의 주소값 출력 System.out.println(c.getCircleObj()); //..