1 / 16

Java Basic Program

Java Basic Program. Data Warehousing Lab. 윤 혜 정. Object. class. instance of class variable + method 로 구성. template for Object • attribute + behavior 로 구성 특성 동작. 객체 지향 프로그래밍. Object 와 Class 객체의 정의 (1) 감각에 의하여 인지될 수 있는 어떤 것 (2) 생각과 느낌, 행도의 대상이 되는 정신적이거나 물리적인 어떤 것

levana
Download Presentation

Java Basic Program

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java Basic Program Data Warehousing Lab. 윤 혜 정

  2. Object class instance of class variable + method로 구성 template for Object •attribute + behavior로 구성 특성 동작 객체 지향 프로그래밍 • Object와 Class • 객체의 정의 (1) 감각에 의하여 인지될 수 있는 어떤 것 (2) 생각과 느낌, 행도의 대상이 되는 정신적이거나 물리적인 어떤 것 • 추상화(abstract) •  일반적으로 추상화는 어떤 물체(object)에서 주된 특징을 부각시켜서 표현하고 나머지 부분은 과감하게 생략하는 것을 의미한다.

  3. 객체 지향 프로그래밍 • 2. 클래스의 정의 Primitive dataType : int a ; //byte 메모리 할당 a=7; //7이 메모리에 저장됨 NonPremitive dataType : Account x; //AccountObject를 point 할 수 //있는 레퍼런스 변수생성 x=new Account(); //실제 Account Object생성하고 //그 오브젝트 주소를 x에 할당 x Account Class DataOnly { int x; float f; ------ field boolean b; public date(){} ------- method }

  4. 초기화와 클린업 • 1. 생성자로 초기화 • 자바에서는 생성자(constructor)라 부르는 특별한 메소드를 제공하여 모든 객체의 초기화를 보장하고 있다. • 생성자는 객체가 생성될 때 가장먼저 호출되는 메소드이며, 생성자의 이름은 클래스의 이름과 같다. • 아무것도 리턴하지 않고, void조차도 붙이지 않는다. class Manager extends Employee { String name; String salary; Manager(String name) {       this(name, 100); } Manager(String name, Long salary) {          this.name = name; this.salary = salary; } }

  5. 초기화와 클린업 2. 메소드 오버로딩 • 오버로딩이란 한 클래스 내에 똑 같은 이름의 메소드 사용 • 자바에서 메소드 오버로딩이 꼭 필요한 곳이 바로 생성자임 • 생성자는 클래스와 이름이 같으므로 한 가지 이름만 갖는다. 메소드 오버로딩을 하려면 파라미터의 수나 Type을 다르게 주어야 한다. • 3. 멤버의 초기화 class Tag { Tag(int marker) {System.out.println("Tag(" + marker +")"); } } class Card {//변수는 클래스 내에 어디에 있는지 항상 제일 먼저 초기화된다. Tag t1 = new Tag(1); //---(1) Card() { System.out.println("Card()"); t3 = new Tag(33);//---(2) } } void f() { int i; i++; }

  6. 내부 구현 감추기 • Package: 라이브러리 유닛 • 자바의 패키지(Package)는 서로 관계 있는 클래스들을 모아 놓은 라이브러리를 말하며 물리적으로는 디렉토리를 나타낸다. 패키지의 이름은 도메인 명을 역순으로 사용한다. • 2. 자바의 접근 지시자 • friendly • public • private • protected package com.dwlab.m125; import java.util.*; class 선언 부분

  7. 클래스 재사용하기 class Employee {  String name;   Date hireDate; Date dateOfBirth; public work() { }  } class Manager extends Employee {  String department;        Employee subordinamtes []; public work() { } } • 상속 • 상속이란 기존 객체에 또다른 기능이나 특성을 추가하여 새로운 객체로 만드는 것을 의미한다.

  8. 클래스 재사용하기 • 1.1 자료의 상속과 메소드의 상속 • 1.2 오버라이딩(Overriding) Heap Stack public class Test c1 { pubic static void main(String [] args) car :: drive, turnon, { Car c1 = new Car(); turnoff, accerate Taxi t1 = new Taxi(); t1 } } taxi :: takeIn, takeoff Handle, frame, engine, seat Handle, frame, engine, seat, taxinumber

  9. 클래스 재사용하기 • 2.Inner Class • 클래스 내부에 또 다른 클래스가 정의된 경우 이를 내부 클래스(Inner Class)라 한다. • 내부 클래스를 이용하면, 논리적인 관점에서 합해질 수 있는 클래스를 하나로 묶을 수 있으며, 내부 클래스를 포함하는 외곽(outer)클래스에서는 내부 클래스의 접근을 제어할 수 있다.

  10. Inner Class Class MyOuter { private int outVar = 1; class MyInner { int inVar = 2; static int s1 = 3; //라인 1 error! int innerMethod() { inVar = outVar; //라인 2 if(this.inVar == MyOuter.this.outVar) //라인3 inVar = 0; return invar; } } int outerMethod() { MyInner inobj = new MyInner(); return inobj.innerMethod(); public static void main(String args []) { //MyInner tobj = new MyInner(); //static으로 선언된 메소드에서는 내부 // 클래스를 사용할 수 없다. MyOuter mobj = new MyOuter(); Mobj.outerMethod(); } }

  11. 다형성 • 1. 클래스간의 형변환 • 클래스 간에 서로 상속관계를 맺고 있는 경우에는 특별한 형 변환 연산자를 정의하지 않아도 서로 간의 형 변환이 가능하다. • 1.1 묵시적 형변환 Public class Animal { 동물의 속성 동물의 행위 메소드 } Public class Man extends Animal { 사람의 속성 사람의 행위 메소드 } Animal a1 = new Animal(); Man m1 = new Man(); Animal a2 = new Man(); a2 동물의 속성.. 사람의 속성

  12. 다형성 • 1.2 명시적 형변환 • 명시적 형변환은 형변환 연산자를 사용하여 변환을 강제적으로 수행하는 방법 Class A { int i; } Class B extends A { int j; } public class Test { public static void main(String [] args) { A a = new A(); B b = new B(); a = new B(); b =(B) a; } }

  13. 다형성 • 2. 다형성 • 다형성(Polymorphism)이란 같은 인터페이스에 의하여 서로 다른 동작이 일어나는 것을 의미한다. GraphicObject draw(); Circle draw(); Rect draw(); Public class Polymorphism { public static void main(String [] args) { callTest(new Circle()); callTest(new Rect()); } public static void callTest(GraphicObject go) { go.draw(); }

  14. 추상 클래스와 인터페이스 • 추상클래스 • 여러 클래스들이 공통의 인터페이스를 사용하도록 하고 싶을 때 추상클래스를 생성한다. • Abstract메소드는 메소드의 기본적인 특성만을 선언해 놓은 메소드로 메소드의 몸체가 없는 머리부분만 존재하는 것이다. abstract class GraphicObject { abstract public void draw(); }

  15. 추상 클래스와 인터페이스 • 2. 인터페이스 • 인터페이스는 명세서이다. • 인터페이스의 사용 • 문법적으로 인터페이스는 메소드의 선언과 static final변수(상수)만을 가질 수 있다. Animal Breath() extends <<Interface>> Mammal breedYoung() Fish swim() extends implements Man Breath()

  16. 배열 • 배열이란 같은 자료형의 데이터를 여러 개 저장하기 위한 메모리 공간을 말한다. 자바에서는 배열을 하나의 객체로써 처리한다. 배열의 선언과 생성 int[] a; // 또는int a[]; a = new int[10]; 배열의 선언, 생성, 초기화 int[] a = { 1, 2, 3 }; 배열의 길이: a.length

More Related