분류 전체보기

    JAVA 자바 웹 개발 Day 11 (Code)

    Aip01. package day11; class Point{ int x,y; public Point(int x, int y) { this.x = x; this.y=y; } @Override public String toString() { //#1 return "(" + x + "," + y +")"; //#2 return "Point class: " + getClass().getName()+ "@" + Integer.toHexString(hashCode()); } } public class API01 { public static void print(Point p) { System.out.println(p.getClass().getName()); System.out.println(p.hashCode())..

    JAVA 자바 웹 개발 Day 11(Note): 패키지, API

    2022/2/21 패키지 package : 폴더/ 디렉터리. 서로 관련 있는 클래스나 컴파일된 클래스 파일들을 한 곳에 묶어 놓은 것. JDK는 개발자에게 많은 클래스 파일들을 패키지 형태로 제공한다. rt.jar 압축파일로 제공되며, 내부는 폴더 구조로 정리되어 있는 것이 보인다. 1. 클래스 명 : 원칙적으로는 클래스를 지칭할 때 패키지 명을 포함하는 경로 명을 사용한다. 패키지와 패키지 사이는 점 연산자 사용. ex) java.awt.Color 2. 패키지 필요성: 패키지 단위로 묶어 접근 지정자를 설정해줄 수 있다…… 3. 패키지 사용 : 기본적으로 클래스 사용 시, 패키지 명을 포함한 전체 경로명을 기술해야 함. java.util.Scanner sc = new java.util.Scanner()..

    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 =..