1주차 : 자바기본 소제목 : 자바 프로그래밍 기본.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

5. 접근 제한자의 이해 SCJP 자격증 프로젝트 발표자 : 노효진.
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
Chap07 상속 Section 1 : 상속의 개요 Section 2 : 멤버 변수의 상속
Power Java 제3장 이클립스 사용하기.
최윤정 Java 프로그래밍 클래스 상속 최윤정
5장. 객체지향과 클래스.
JAVA 클래스와 멤버 2014년 4월 2일 19:00 손은경 강원대학교 데이터베이스 연구실 강원대학교 데이터베이스 연구실.
Java로 배우는 디자인패턴 입문 Chapter 5. Singleton 단 하나의 인스턴스
컴퓨터 프로그래밍 기초 [Final] 기말고사
제 5 장 상속과 다형성.
명품 JAVA Essential.
Lesson 5. 레퍼런스 데이터형.
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
Lesson 6. 형변환.
Java 기초 (Java JDK 설치 및 환경설정)
5장. 참조 타입.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
패키지와 접근 제어 패키지에 대하여 접근 제어에 대하여.
Java 6장. 클래스 : 속성 public class SumTest {
Lesson 7. 클래스와 메소드 - 1.
자바 5.0 프로그래밍.
C#.
13. 연산자 오버로딩.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
7장 인터페이스와 추상 클래스.
Method & library.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
자바응용.
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
20장. 객체지향 프로그래밍 01_ 객체지향 프로그래밍의 시작.
제 4장. 객체 지향 프로그래밍 시작하기 학기 프로그래밍언어및실습 (C++).
Part 4 클래스 라이브러리 Chapter 10 : 다중 스레드 Chapter 11 : 패키지와 주요 클래스
자바 5.0 프로그래밍.
자바 가상 머신 프로그래밍 Chap 10. 자바 컴파일링의 안쪽 ② Pslab 오민경.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Power Java 제11장 상속.
Chapter 02. 자바 기본 문법.
5강. 배열 배열이란? 배열의 문법 변수와 같이 이해하는 배열의 메모리 구조의 이해 레퍼런스의 이해 다차원 배열
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
JA A V W. 06.
10장 상속 Section 1 상속의 개요 Section 2 상속과 한정자 Section 3 상속과 생성자
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
객체기반 SW설계 팀활동지 4.
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
Lecture 04 객체지향 페러다임 Kwang-Man Ko
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
Numerical Analysis Programming using NRs
2.가상머신의 탐험 도구, Oolong에 대하여 ps lab 김윤경.
자바 객체 지향 프로그래밍 Ps lab 김윤경.
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
13. 포인터와 배열! 함께 이해하기.
7 생성자 함수.
6 객체.
Presentation transcript:

1주차 : 자바기본 소제목 : 자바 프로그래밍 기본

이 장에서 다룰 내용 2 1 자바설치 2 2 자바 기본 자바 중급 3 3

01. 자바 설치 http://java.sun.com 사용할 버전을 선택하여 플랫폼에 맞는 JDK update 버전을 다운 JDK 설치시 JDK와 JRE 두개 가 설치 환경변수 PATH에 자바 JDK설치경로\bin 을 입력 환경변수에 classpath 추가 .;를 추가한다. http://www.eclipse.org 자바 프로그램 개발툴 이클립스를 다운로드 받는다. 다운로드 선택시 java classic 종류를 다운 받으면 된다.

02. 자바 기본 자바를 만들 때 이것만은 꼭 알아 두자.. 클래스 컴파일/실행 자바는 대소문자를 구분한다. 클래스명의 첫글자는 반드시 대문자 이여야 하고 파일명과 같아야 한다. 클래스명으로 숫자를 첫문자로 쓸수 없다. 클래스명으로 특수기호를 사용할수 없다.($,_제외) 예약어가 존재하기 때문에 클래스명이나 변수명으로 사용할수 없다. 자바를 구성하는 기본 형태이다. class Car{ } Car.java 형태로 저장하면된다. javac Car.java - javac로 컴파일이후 Car.class라는 파일이 생성된다. java Car - 실행하면 Car.class가 실행된다.

02. 자바 기본 클래스의 구성요소 멤버 변수 메소드 클래스는 멤버 변수와 멤버 메소드를 가진다. class Car{ int speed=0; - 멤버변수 void speedUp(){ speed = speed + 1; - 메소드 } 데이터의 임시 저장소라고 보면 된다. 클래스 내부 어디에서건 사용할 수 있다. 실제 프로그램의 로직(연산문, 분기문등)이 들어간다. 메소드는 반환타입을 가지고 있는 형과 반환타입이 없는 형 두가지만 존재한다.

02. 자바 기본 지역변수(로컬변수) 그 이외에 클래스가 가질수 있는것.. 메소드나 for문등의 내부에 지역변수를 가질 수 있다. class Car{ int speed=0; - 멤버변수 void speedUp(){ speed = speed + 1; - 메소드 System.out.println(name+”차의 속도는+speed + “이다”); // 오류구문 } void carName(String name){ - name은 지역변수이다. System.out.println(name+”차의 속도는”+speed+”이다”); name은 지역변수이다. 한 지역( 메소드의 { } ) 사이에서만 역할을 한다. 클래스 내부에 클래스를 가질수 있다.(유명, 무명) 필드를 가질수 있다..(상수, 다른 static객체)

02. 자바 기본 클래스나 메소드 변수를 사용하는 방법(자바의 핵심) 이것만 이해해도 자바를 반 정도는 알고 들어가는 것 우리가 잘 만들든 못 만들든 간에 작성한 class라는 것이 쓰임을 할 려면 class가 가지고 있는 멤버 변수나 메소드를 동작시켜 올바른 결과를 얻는 것이다. 객체지향이라는 것은 단순하게 보면 ‘다른 사람이 만든 프로그램을 내가 효율적으로 사용’ 하는 것 이라고 볼 수 있다. 여기서 중요한 것은 내가 사용한다는 측면이다. 즉 사용 하기 위해서 우리가 말하는 컴퓨터의 ‘cpu를 돌리던(연산)가 메모리에 올리던가’ 둘 중의 한가지 이다. 1. 사용하기 위해서 중요한 무엇을 사용할 것인지(클래스명)가 필요하게 되는 것이다. 2. 메모리가 사용되는 특정한 장소를 지칭하는 레퍼런스 변수명 이 필요하다. 3. 2번의 과정이 아닌 간단하게 프로그램 개발 시 static라는 명령어를 사용하여 클래스명으로 접근해서 사용하는 방법이 있다. 다음 예제를 보자.

소나타의 최고 속도는 250KM이다 를 출력하는 예제 class Car{ String carName=“소나타”; int speed; static void max_Speed() { if(carName==“라노스”){ speed = 180; } else if (carName == “소나타”){ speed = 250; } else { speed = 0; } System.out.println(carName+”의 최고 속도는” + speed+ ”이다”); } //static영역의 함수기때문에 멤버변수인 carName, speed를 사용 불가

소나타의 최고 속도는 250KM이다 를 출력하는 예제 class CarMain{ public static void main(String ar[]){ Car a = new Car(); a.max_Speed(); } Car 클래스 객체를 생성한 후 max_Speed() 메소드를 호출 Car.max_Speed();

02. 자바 기본 언제 static를 지정하는가? 레퍼런스 변수란? 8가지 기본 데이터 형과 그 외의 나머지 객체형 객체가 메모리에 올라가 있는 주소의 값을 레퍼런스 변수라 한다. 메모리 사용 측면에서 나누는 기준이라 볼 수 있다. 가장 많이 사용하는 데이터를 분류하여 미리 그 데이터의 최대 크기를 지정하여 메모리 크기를 지정했다. 꼭 알고 넘어가야 하는 중요한 사항이다.

02. 자바 기본 8가지 기본 데이터 형과 그 외의 나머지 객체형 long 문자형 true, faulse : 모두 소문자 기본 데이터형

02. 자바 기본 접근 지정자란? public, protected, default(아무명시없음), private 멤버 변수나 메소드 앞에 지정하여 접근할수 있는 권한을 나타낸다.

02. 자바 중급 생성자란? 객체를 생성할 때 제일 먼저 호출 하는 메소드 클래스를 만들때 생성자를 만들지 않아도 JVM이 자동으로 만들어준다. 클래스명과 동일하며 리턴 타입이 없다. class Car{ } //생성자를 생성하지 않아도 아래 처럼 자동으로 만들어줌 class Car { Car(){ // 클래스 명과 동일한 메소드 즉, 생성자 이다. } 위에 두 클래스는 동일하다. class CarMain{ public static void main(String ar[]){ Car a = new Car();//new 연산자 뒤에 생성자를 호출한다.

02. 자바 중급 상속이란? 부모가 가진 재산을 자식에게 물려 주듯이 부모 클래스(super class)가 가지고 있는 모든 기능을 자식 클래스(sub class)가 특정한 객체 생성없이 모두 사용 가능하게 하는 기법 class Car { int maxSpeed; int minSpeed; } class Truck { String truckName; class Truck extends Car{

02. 자바 중급 상속에서 알아 두어야 할 점 상속시 생성자의 관계 자바에서 상속은 단일 상속만 가능하다.(class A extends B, C ….//불가능) 2개 이상의 클래스를 상속 하기 위해서는 아버지의 아버지를 만들면 된다..? class A class B extends A class C extends B 결국 C 클래스는 A, B 가지고 있는 모든 기능을 쓸 수 있다. 부모 클래스의 생성자가 먼저 실행 된 후 자식 클래스의 생성자가 실행 된다. 1. 생성자는 상속되지 않는 유일한 멤버함수이다. 2. 서브 클래스의 인스턴스가 생성될 때 자신의 생성자가 호출되면서 슈퍼 클래스의 생성자가 연속적으로  자동으로 호출된다. (이때, 자동 호출되는 생성자는 전달인자 없는 디폴트 생성자 형태이다.) 3. 슈퍼  클래스 생성자가 먼저 실행되고 서브 클래스의 생성자가 실행된다.

02. 자바 중급 this, this() this : 자기 자신의 클래스를 가리키는 레퍼런스 이다. 특별한 선언없이 사용가능 this() / super() 메소드는 생성자 그리고 생성자의 첫 라인에서만 사용 가능 this, this() this : 자기 자신의 클래스를 가리키는 레퍼런스 이다. 특별한 선언없이 사용가능 class Car{ int speed; void speedUp(int speed){ speed = speed; // 앞의 speed와 뒤의 speed의 구별이 가능한가? this.speed = speed; //앞의 speed는 Car의 speed 위의 speed는 메소드의 지역변수인 speed } this() : 클래스 생성시 처음으로 호출되는 생성자는 new연산자를 통해서만 호출이 가능 클래스 내부에서 다른 생성자를 호출하기 위해서 사용 Car(){ this(3); Car( int s ){ speed = s;

02. 자바 중급 오버로딩(다형성, 폴리머피즘polymorphism) 동일한 이름의 메소드를 전달인자의 개수나 종류,순서를 틀리게 하여 여러 개 만드는 것. 예) System.out.println(“이부분에 틀린 형태의 자료형이 들어갈수 있다.”); //String System.out.println(0.35); //float형 System.out.println(true); //boolean형 class Car{ void speed(){ System.out.println(“차가 달린다.”); } void speed( int x ){ System.out.println(“차가 ” + x + “속도로 달린다.”);

02. 자바 중급 오버라이딩 상속 받는 상위 클래스의 메소드를 그대로 사용 하는 것이 아니라 하위클래스의 입맛에 맞게 변경해서 사용하는 것.. 예) class Car{ int speed; //차의 속도 void speedUp(){ speed = speed + 20; //20km씩 속도가 증가.. } class Truck extends Car{ if(speed >= 150) speed = 150; } else { speed = speed + 10; //10km씩 속도 증가 } }

02. 자바 중급 super, super() super : 상속시 상위 클래스를 가리키는 레퍼런스 이다. 특별한 선언 없이 사용가능 class Car{ void speedUp(int speed){ } class Truck extends Car{ void speedUp(){ super.speedUp(20); super() : 하위 클래스 에서 상위 클래스의 생성자를 호출할 때 쓰인다. Car(String s){ System.out.println(“이차는”+s+”이다”); class Truck extends Car{ Truck(){ super(“모래운반용”); } * this(), super()의 위치는 생성자의 첫 라인만 가능하다.

02. 자바 중급 추상클래스 객체를 생성할 수 없는 클래스 클래스를 구성하는 메소드의 내용 부분이 없고 이름만 지정 클래스나 메소드 앞에 abstract 를 붙여 준다. 사용이유 : 동일한 이름의 메소드를 상속받아 사용하라고 만드는 것임 메소드 중 하나라도 abstract가 있다면 클래스명 앞에 abstract를 붙여야 한다. abstract메소드는 구현부분{} 가 없고 ; 로 끝이 난다. class Car{ // 잘 못된 표현 클래스명 앞에 abstract를 붙여야 한다. abstract void windowOpen(); } abstract class Car{ 추상클래스 자체는 객체를 생성할 수 없기 때문에 하위클래스의 객체를 생성해서 사용한다.

02. 자바 중급 인터페이스 추상클래스와 거의 비슷한 개념을 가지고 있다. 다른 점은 추상클래스는 일반 메소드를 가질 수 있는 반면 인터페이스는 추상메소드만을 가진다. 인터페이스의 가장 큰 장점은 다중 상속이 가능하다. 인터페이스를 상속하였다면 그 인터페이스가 가지고 있는 메소드 모두를 하위클래스에서 구현해야 한다. 작성시 class가 아닌 interface라고 명명한다. 또한, 상속시 extends가 아닌 implements 라고 쓴다. interface Car { void speedUp(); } class Truck implements Car{ void speedUp(){ //반드시 인터페이스가 가지고 있는 메소드를 구현해야 한다. interface 클래스의 메소드는 리턴 타입이 없는 void형이며, 변수는 가질 수 없으나 상수 형태의 변수는 사용 가능하다. * 인터페이스의 사용이유 : 동일한 이름의 메소드명, 다중 상속을 위해서 사용한다.

02. 자바 중급 final 멤버변수, 메소드, 클래스 앞에 붙여 사용 가능하다. 1. 멤버변수 앞에 있을 때 : 그 멤버변수는 상수화 된다. 변경이 불가능 2. 메소드 앞에 있을 때 : 그 메소드는 오버라이딩이 불가능하다. 3. 클래스 앞에 있을 때 : 그 클래스는 상속을 할 수 없다. 부모클래스가 될 수 없다. final class Car{ } class Truck { final int speed = 100; // 변경이 불가능하다. 상수화 됨 class Car { final void speedUp(){

Thank You !