전체 글 73

Java 11일차 -익명 클래스, 예외처리

>익명 클래스(anonymous inner class) 이름이 없는 클래스 클래스 객체명 = new 클래스() { }; 그러면 형변환해서 사용할 수 있지않나..?!!! but, 형변환할때 클래스의 이름이 필요하다. 근데 익명클래스는 이름이 없다. 그러므로 다운캐스팅이 불가능하다. 1.익명메소드의 예 2.익명클래스로 인터페이스를 호출하는 방법 --------------------------------------------------------------------------------------------------------------------------------->예외처리 에러 : 심각한 오류 예외 : 덜 심각한 오류, 개발자들이 일부러 발생시키는 예외이다. syso(10/0) 출력하면 어떻게 나올..

Java 10일차 - 추상,내부 클래스

>접근 권한 제어자 :다른 패키지 혹은 다른 클래스에서 해당 필드에 접근할 수 있는 권한을 제어해주는, 설정해주는 키워드들 -종류 (default) :다른 패키지에서 접근 불가 when? 확실하게 같은 패키지에서만 이용할 때, 귀찮을 때 public :모든 곳에서 접근 가능 when? 모든곳에서 자유롭게 접근이 가능해야하는 필드들 (데이터를 처리하고 기능을 담당하는 메소드들) private :다른 클래스, 다른 패키지에서 접근 불가 when? 데이터를 담는 변수들 (게시글 제목,회원 아이디,...) protected :다른 패키지에서 접근 불가/ 단 자식은 자신의 필드처럼 접근 가능 when? 상속이 목적(자식 클래스들이 오버라이딩 해서 써야하는 메소드) **private 필드는 직접 접근할 방법이 하나..

Java 9일차 -Up casting, Down casting

>업 캐스팅(Up Casting) -자식 타입의 객체를 부모 타입의 객체로 변환 : 부모 타입의 객체에 자식 클래스의 필드를 담아주는 것 ex) SuperCar supercar = new SuperCar(); Car car = supercar; - 부모 타입의 객체에 자식 생성자를 호출 ex) Car car = new SuperCar(); -부모 타입의 매개변수에 자식 객체를 넘기는 것 ex) void f( Car car ){ } f( new SuperCar( ) ); --->업 캐스팅 된 객체는 자식 클래스에서 추가한 내용을 사용할 수 없다. 단, 오버라이딩 된 메소드는 사용 가능하다. >다운 캐스팅(Down casting) -업 캐스팅된 객체를 다시 자식타입으로 바꾸는 것 -업 캐스팅 시 잘려나갔던 ..

Java 8일차 -클래스 배열, 상속

>클래스 배열 -객체를 여러개 선언해야 하는 경우 배열 타입으로 한번에 선언 후 사용 -각 객체는 규칙성이 없기 때문에 규칙성을 부여하기 위해서 사용 (한칸 한칸이 하나의 객체) ex)자동차라는 클래스(추상적인것)을 이용하여 여러가지 차를 객체화 시켜주고 싶은 경우 Car car0 = new Car("Ferrari", "Red", 65000); Car car1 = new Car("K7", "White", 7000); Car car2= new Car(28000); ↑위를 보면 보라색부분이 계속 겹쳐진다. 답답하지 않나? 저 반복적인것을 어떻게 묶지? 이 때 우리가 떠올릴 수 있는것은 배열이다. 변수처럼 클래스도 똑같이 배열을 만들 수 있다. Car[] garage = { new Car("Ferrari", ..

Java 7일차 -클래스

>storage Class(저장 기억 부류) 지역 변수 : 메소드 내부에 선언된 변수// 갈색 (매개변수도 지역변수의 일종) 전역 변수 : 클래스 내부에, 메소드 바깥에 선언된 변수// 파란색 정적 변수 : static이 붙은 변수 // 살짝 기울어짐 지역 변수 전역 변수 정적 변수 초기화 직접 자동 자동 생명주기 } 프로그램 종료시 프로그램 종료시 접근성 하 중 상 지역변수는 초기화를 직접 하지 않으면 오류가 생긴다. 또한 중괄호 안에서만 유효하며 나가게 되면 초기화가 된다. 그러므로 접근성이 가장 낮다. 두 번째는 전역 변수인데 초기화를 컴퓨터가 자동으로 해줘서 우리가 할 필요가 없다. 또한 큰 특징이 전역 변수라서 메서드 안에서 사용이 가능하지만 정적 메소드(static 메소드) 안에서는 사용할 수..

Java 6일차 -메소드

>String 클래스 "Hello" --> char[] --> {'H','e','l','l',o} 문자열의 본질은 문자배열 값을 담은 문자배열 + 유용한 메소드 --->문자열 클래스로 구현 >메소드 :이름뒤에 소괄호 (단, 키워드 뒤의 ()나 클래스 뒤의 ()는 메소드가 아니다. 1)반복되는 코드, 기능,행위 처리 등을 쉽게 관리하기 위해 사용된다. 2)반복이 규칙적이지 않고 우리가 원할때 특정 코드를 수행하게 하고 싶을 때 메소드를 만들어놓고 후에 호출해서 사용한다. f f(x) = 2x + 1 메소드 매개 리턴값 이름 변수 >메소드 구조 (1)리턴타입 (2)메소드 명(3)자료형 매개변수, 자료형 매개변수...){ (4)호출시 실행할 문장 (5)return 리턴값; } (1)return 뒤의 값의 타입..

Java 4일차 -for문

>for문 for문 횟수에 의한 반복문 반복 횟수가 ☆특정☆된 경우에 사용한다. 무언가 값이 일정하게 변하는 반복이라면 99.99% for문을 사용한다. for(초기식;조건식;증감식){ 수행할 문장 } 초기식 : 변수 하나를 선언해준다.(내부에서 이 변수를 사용 가능) 조건식 : 매 반복 전에 조건식 검사(참이면 반복, 거짓이면 탈출) 증감식 : 초기식에서 선언한 변수의 증감을 설정

Java 5일차 -배열

>배열 :같은 자료형의 여러 변수를 나열해 놓은것 >배열의 선언 자료형[] 배열명 = {값1,값2,...}; 자료형[] 배열명 = new 자료형[칸수]; --->각각 자료형에 맞게 초기화 됨. ex) int[] arData = {10,5,1,17,15}; arData[0] = 20; //공간의미!! (대괄호는 연산자이므로 공간이다) 만약에!! 안에있는 수를 출력하고 싶을때는 어떻게 해야할까? 하나하나 적어보면 arData[0] = 10 이렇게 될것이다. arData[1] = 5 arData[2] = 1 .... -->여기서 규칙성을 볼수있다. arData[] 라는 값이 계속 반복되며 안에 index 넘버가 1씩 증가함을 알수 있다. 그래서 여기서 우리가 떠올려야 하는것은 for문이다. index 0부터 ..

Java 3일차 -조건문

저번시간까지는 단항, 이항 연산자를 배워봤다. 이번 시간부터는 삼항 연산자를 공부하면서 조건문의 필요성에 대해서 알아볼 것 이다. >삼항 연산자 조건식? 참이면 오는 부분: 거짓이면 오는 부분 조건식? 참일때의 값 : 거짓일때의 값 ex) number>0? "양수입니다" : "음수입니다" :삼항연산자는 사용부분 통째로 값 ex) result = number>0? "양수입니다" : "음수입니다" // result라는 공간에 값이기 때문에 넣을 수 있다. 경우의 수가 단 두가지의 값으로 나올 경우에 사용 (why? 너무 길어지고 복잡해진다) ex) 정수를 입력하면 양수 or 0 or 음수인지 출력해줘야 하는경우 result = num>0? "양수입니다" : num==0? "0입니다" : " 음수입니다 " S..