일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코드로 시작하는 자바 첫걸음
- 타임리프 - 기본기능
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch14
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch3
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch11
- jpa - 객체지향 쿼리 언어
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch6
- 게시글 목록 api
- 2024 정보처리기사 수제비 실기
- 스프링 입문(무료)
- @Aspect
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch7
- 2024 정보처리기사 시나공 필기
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc2 - 타임리프
- 스프링 db1 - 스프링과 문제 해결
- 자바의 정석 기초편 ch4
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch9
- 스프링 db2 - 데이터 접근 기술
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch13
- 스프링 고급 - 스프링 aop
- 스프링 mvc2 - 로그인 처리
- Today
- Total
목록전체 글 (347)
나구리의 개발공부기록
1) 예외 정보 확인예외가 발생하면 예외 객체가 생성이 되는데 해당 객체의 메서드들을 통해 예외의 정보를 확인할 수 있음(1) printStackTrace()예외 발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력(2) getMessage()발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있음(1) 예제printStackTrace() 메서드를 호출하여 예외 정보를 출력getMessage() 메서드를 호출하여 예외 메시지를 출력class Ex8_5 { public static void main(String args[]) { System.out.println(1); System.out.println(2); try { System.out.println(3); Sy..
1) 프로그램오류(1) 컴파일 타임 에러컴파일 할 때 발생하는 에러, IDE에서 코드 작성시 템플릿 줄에서 바로 에러 확인이 가능컴파일러가 하는 일은 구문체크, 번역, 최적화, 생략된 코드 추가 등의 기능을 함터미널(cmd)창에서 코드를 작성하면 일일히 컴파일 해줘야하지만 IDE는 자동으로 컴파일 함터미널에서 컴파일 방법1. 터미널 실행2. 컴파일 할 java파일이 있는 곳 (src폴더)으로 경로 이동, (cd 명령어 사용)3. 경로 이동 후 커맨드 입력 : javac 파일명.java(2) 런타임 에러실행할 때 발생하는 에러 (실행 해야만 에러가 확인 가능) -> 런타임 에러가 발생하면 프로그램이 종료 됨터미널에서 실행 방법(프로그램 실행)1. 터미널 실행2. 실행할 class파일이 있는 곳 (bin폴더..
1) 내부클래스클래스 안의 클래스(1) 장점내부 클래스에서 외부 클래스의 멤버들을 외부클래스의 객체를 만들지 않고 접근이 가능함코드의 복잡성을 줄일 수 있음 - 일종의 캡슐화B클래스를 굳이 밖에서 사용할 일이 없을 때 내부클래스로 생성 -> 별도의 방법으로 사용은 가능함class A { // B의 외부클래스 .... class B { // A의 내부클래스 - 객체생성없이도 A의 멤버 접근 가능 ... } ...} (2) 내부 클래스의 종류별 유효범위iv = 내부클래스cv = static 내부 클래스lv = 메서드안에 선언된 내부 클래스class outer { int iv = 0; // iv = 내부클래스와 동일 static int cv = 0; // cv = stati..
1) 인터페이스의 장점 1두 대상(객체)간의 중간 역할을 함 (연결, 대화, 소통)선언부(설계, 껍데기)와 구현부(알맹이)를 분리시킬 수 있음(1) 직접적인 관계의 클래스 A a = new A();로 객체 생성 후 a.method()에 B의 객체를 인자로 입력하여 호출하면 B클래스의 메서드는 출력이 됨그러나 C의 객체를 인자로 출력하려고하면 A클래스에 있는 method()를 C클래스를 파라미터로 오버로딩해야 함, 즉 A의 코드의 수정이 불가피함class A { // C클래스의 메서드를 출력하면 클래스 A의 수정이 불가피함 public void method(B b) { // 클래스 B의 메서드 실행 b.method(); // 메서드 호출 } // 클래스 C의 메서드를 실행하는 메서드를 오버로딩 해야..
1) 인터페이스(interface)추상 메서드의 집합(프로그래밍 관점)즉 구현된 것이 전혀 없는 설계도(껍데기)추상메서드가 인터페이스의 핵심이며 static메서드, 상수, 디폴트메서드(접근제어자가 아님)는 부수적인 요소임 모든멤버는 public 접근제어자가 기본임(1) 추상클래스와 인터페이스의 차이추상클래스 -> 일반클래스인데 추상메서드를 가지고 있음 즉 iv나, 생성자들이 있을 수 있음인터페이스 -> 아무것도 없고 추상메서드만 가지고있으며 iv를 가질 수 없음, 일반 메서드를 가질 수 있도록 변경되었긴 여전히 iv는 없고 다중상속이 가능함(2) 예제interface에서 제어자 없이 그냥 변수를 선언하면 항상 public, static, final 제어자가 기본값이므로 상수로 선언됨제어자 없이 메서드를 ..
1) 추상클래스미완성 설계도(미완성 메서드를 갖고 있는 클래스)미완성 메서드는 선언부만 가지고 있으며 구현부가 없음abstract 리턴타입 메서드이름(); 으로 정의함abstract를 붙힘으로 인하여 '나중에 완성해야 하는구나' 라는 인식을 주도록 할 수 있음 (필수 요소에 대한 강제성 부여)클래스와 메서드 앞에 abstract 붙혀야 에러가 안남다른 클래스 작성에 도움을 주기 위한 것으로 그 자체로는 인스턴스 생성이 불가능 함상속을 통해 추상 메서드를 완성해야 인스턴스 생성 가능// abstract를 안붙히면 에러남(메서드, 클래스 전부)abstract class Player { // 추상클래스(미완성클래스) abstract void play(int pos); // 추상메서드(블럭..
1) 다형성의 장점다형적 매개변수하나의 배열로 여러종류 객체 다루기2) 매개변수의 다형성 (다형적 매개변수)참조형 매개변수는 메서드 호출시 자신과 같은 타입 또는 자손타입의 인스턴스를 넘겨줄 수 있음메서드의 매개변수에 매개변수의 다형성을 활용하여 조상타입의 참조형 매개변수로 정의해두면 해당 메서드를 호출하여 사용할 때 매개변수의 타입의 자손 타입을 모두 입력할 수 있어 메서드의 활용도가 높아짐 (1) 예제class Product { int price; // 제품의 가격 int bonusPoint; // 제품구매 시 제공하는 보너스점수 Product(int price) { this.price = price; bonusPoint = (int)(price/10.0); // 보너스점수는 제품가격의 10% }..
1) 참조변수의 형변환사용할 수 있는 멤버의 갯수를 조절 하는 것기본형의 형변환은 값이 바뀌지만 참조변수(참조형)의 형변환은 값(참조값, 객체)이 바뀌는 것이 아님 - 중요단지 객체를 참조하는 방식만 변경되는 것일 뿐임상속관계와 구현관계(인터페이스를 구현한 클래스)에서 사용 가능 (1) 예제1FireEngine 객체를 생성하여 참조한 참조변수를 업캐스팅, 다운캐스팅 -> 모두 성공적으로 적용됨업캐스팅: 자식 클래스의 객체를 부모 클래스의 타입으로 변환하는 것 -> 더 일반적인 타입으로 변환, 형변환 타입 생략 가능다운캐스팅: 부모 클래스의 타입으로 참조된 자식 클래스의 객체를 자식 클래스의 타입으로 변환하는 것 -> 구체적인 타입으로 변환, 형변환 타입 생략 불가능업캐스팅, 다운캐스팅을해도 참조값이 바뀌..
1) 캡슐화(1) 접근제어자를 사용하는 이유?외부로부터 데이터를 보호하기 위해서 -> 캡슐화멤버변수에 직접 접근하지 못하게 하고 메서드를 통해 간접적으로 쓸 수 있게 함.외부에는 불필요하고 내부적으로만 사용되는 부분을 감추기 위해 사용함접근제어자는 좁을수록 좋고 필요할 때 넓히는 것이 좋음(2) 캡슐화 예제1 - 캡슐화 전시간을 정의하는 클래스에 hour를 직접 변경하지 못하도록 캡슐화 진행변수들이 default 변수여서 같은 패키지내에서는 마음껏 수정이 가능함class Time { int hour; // 0 ~ 23사이의 값을 가져야 함. int minute; int second;}public class TimeTest { public static void main(String[] args) { T..
1) 제어자 - modifier클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여함접근 제어자는 하나의 대상에 하나만 사용 가능함그 외 제어자는 여러 제어자를 같이 사용할 수 있음순서는 상관없으나 대부분 접근 제어자를 가장 앞에 사용(1) 접근 제어자public, protected, (default), private - 4개 중에 한개만 붙힐 수 있음디폴트는 아무것도 안붙히는 것(2) 그 외 제어자static, final, abstract, native, transient, synchronized, volatile, strictfp 등등public class ex07_write { // 접근 제어자를 가장 앞에 쓰는 것이 관례 // 접근 제어자는 한개밖에 사용 불가함 public stati..