JAVA PROGRAMMING PART IV.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
โครงสร้างโปรแกรมภาษา JAVA
Advertisements

The InetAddress Class.
Lab Part Nattee Niparnan
Component องค์ประกอบของ GUI.
Swing Component Basic Component.
Introduction to Java Graphic 2D
Object-Oriented Programming IUP02 At Exceep camp.
File.
05_3_Constructor.
Object-Oriented Programming
การเขียนโปรแกรมภาษาจาวาตอนที่ ๓
ครั้งที่ 7 Composition.
หลักการเชิงวัตถุ อาจารย์ศิริพร ศักดิ์บุญญารัตน์
การสืบทอด (Inheritance)
LOGO Array. ประเภทของ Array - อาเรย์ 1 มิติ (One) - อาเรย์ 2 มิติ (Two) - อาเรย์ 3 มิติ (Three) 2.
บทที่ 3 Class and Object (1) การสร้างและการใช้งานคลาส
คลาสและวัตถุ (2) (Class & Object)
 เป็นเมธอดที่มีคุณลักษณะของ Polymorphism รูปแบบหนึ่ง โดยใช้ชื่อเมธอดเดียวกัน มากกว่า 1 เมธอด เพื่อทำงานในแบบเดียวกัน  คลาสลูกสามารถเขียนทับ เมธอดของคลาสแม่ได้
คลาสและวัตถุ (3) (Class & Object)
คลาสและวัตถุ (2) (Class & Object)
คลาสและวัตถุ (3) (Class & Object). w5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 24, 25 as5_000.rar การใช้งานเมธอดภายในคลาสเดียวกัน ข้อ 23 2.
บทที่ 4 Method (1).
การสืบทอดคุณสมบัติ (Inheritance)
C# Programming Exceed Camp: Day 3.
Inheritance การสืบทอดคลาส
String Class มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
อาร์เรย์ หรือแถวลำดับ (Array)
input from keyboard มหาวิทยาลัยเนชั่น การโปรแกรมเชิงวัตถุด้วยภาษา JAVA
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 15 มิถุนายน 2550 Structure Programming มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 3 มิถุนายน 2550 Method of Class มหาวิทยาลัยเนชั่น.
Page: 1 การโปรแกรมเชิงวัตถุด้วยภาษา JAVA บุรินทร์ รุจจนพันธุ์.. ปรับปรุง 22 มิถุนายน 2550 ความผิดพลาดที่พบ บ่อย มหาวิทยาลัยเนชั่น.
บทที่ 6 เมธอด.
โครงสร้างควบคุมการทำงาน
โปรแกรมภาษาจาวาเบื้องต้น Basic Java Programming 3(2-2-5)
คำสั่งควบคุมการ ทำงาน การเขียนโปรแกรมโดยปกติ มีทั้งให้ทำงาน เป็นลำดับ ที่ละคำสั่ง บางครั้งมีการให้เปลี่ยน ลำดับในการทำคำสั่ง เพื่อให้การเขียน โปรแกรมมีประสิทธิภาพสูงสุด.
Java Programming Language สาขาวิชาระบบสารสนเทศ คณะบริหารธุรกิจ มหาวิทยาลัยเทคโนโลยีราชมงคลกรุงเทพ.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
ความสัมพันธ์ระหว่างคลาส (Class Relationship)
Object Oriented Programming Handling Exceptions
Method of Class อ.สุพจน์ สิงหัษฐิต
สำนักวิชาเทคโนโลยีสารสนเทศและการสื่อสาร มหาวิทยาลัยนเรศวร พะเยา
Object-Oriented Programming
Advanced Class Design in Java Java Packages Week #6 Jarungjit Parnjai
บทที่ 3 Class and Object (2).
บทที่ 2 การแสดงผลและรับข้อมูล
บทที่ 4 คำสั่งควบคุมแบบมีทางเลือก
Java collection framework
Java Programming Java Structure and Datatype,Variable
สายอักขระ เขียนโปรแกรม Java เบื้องต้น.
การจัดวางคอมโพเนนต์กราฟิก
Java Network Programming 1
chapter5 - คลาสนามธรรม - อินเตอร์เฟสคลาส
TECH30201 Object-Oriented Programming
Inheritance และ Encapsulation.  การสร้างหรือพัฒนาคลาสใหม่จากคลาสเดิมที่ มีอยู่แล้ว  คลาสใหม่จะนำแอตทริบิวต์และเมธอดของ คลาสเดิมมาใช้  เป็นการถ่ายทอดคุณสมบัติจากคลาสหนึ่งสู่อีก.
ให้ทำการเขียนโปรแกรมเพื่อแสดงรูปภาพ ดังนี้
การจัดการกับความผิดปกติ
Variable, Data type, Expression, Operators Data input, Data output
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Chapter 6 Abstract Class and Interface
บทที่ 3 การสืบทอด (Inheritance)
การเขียนโปรแกรมบนมาตรฐานเปิด โครงสร้างโปรแกรม public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World”);
Object and classes.
Package การสร้าง Package การใช้งาน Package อ.ธวัฒน์ชัย.
Inheritance and Method Overriding
Object-Oriented Programming Paradigm
Abstract Class and Interface
Method and Encapsulation
Inheritance Chapter 07.
Class Inheritance and Interfaces.
Class Diagram.
ใบสำเนางานนำเสนอ:

JAVA PROGRAMMING PART IV

INHERITANCE Inheritance is a form of software reusability in which new classes are created from existing classes by absorbing their attributes and behaviors and adding new capabilities the new classes require. Newly created classes of objects are derived by absorbing characteristics of existing classes and adding unique characteristics of their own

KEYWORD Given Class A, and we want to define class B that derive from Class A we used keyword “extends” as Class B extends A { //definition of class B }

Super class & Sub Class Class A : parent class/base class/super class Class B : child class/extended class/sub class class A { void printA() {System.out.println(‘A’);} } class B extends A { void printB() {System.out.println(‘B’);}

Relationship Sub Classes inherit all member (data&method) from its Super Class except The private member of Super Class Constructor of Super Class class InheritTest1 { public static void main(String args[]) { A x = new A(); x.printA(); B y = new B(); y.printA(); y.printB(); } A B

KEYWORD “FINAL” For break extends class 6 class A { int a = 1;} class B extends A { int b = 2; } final class C extends B { int c = 3; } class Inherit2 { public static void main(String args[]){ C z = new C(); System.out.println(z.a+z.b+z.c); } 6

REFERENCE class A {int x;} class B {int y;} A a = new A(); B b = new B(); a b x y x

Try it! 1 1, 2 class A { int x = 1;} class B extends A { int y = 2; } class Inherit3 { public static void main(String args[]) { A a = new A(); System.out.println(a.x); B b = new B(); System.out.println(b.x + “,” + b.y); b.x--; // b = a; a = b; } 1 1, 2

Package class โดยปรกติจะจัดเก็บต่อหนึ่งไฟล์ .class อยู่แล้วเมื่อตอน compile โปรแกรม เป็นแหล่งจัดเก็บ class ต่าง ๆ ที่เกี่ยวข้องกันไว้ที่เดียวกัน ใน package หนึ่งสามารถมี class ไม่จำกัด ใน package สามารถมี subpackage อีกเท่าใดก็ได้ ปรกติที่เราจัดเก็บไฟล์จาวาไว้ใน ไดเรกทอรี่ Myjava ดังนั้นเรียกได้ว่าไฟล์ได้อยู่ใน package Myjava

Packages Standard Packages ใน JDK 1.2.x อยู่ในไฟล์ rt.jar และ i18n.jar ซึ่งอยู่ใน C:\JDK1.2x\JRE\LIB java.applet java.net java.awt java.rmi java.beans java.security java.io java.sql java.lang java.util java.math

Package เราสามารถใช้ class จาก package อื่นได้โดยการ import ไว้ที่ส่วนหัวโปรแกรม เช่น import java.awt.Button; import java.awt.Graphics; import javax.swing.JApplet; import java.awt.*;

Keyword จัดเก็บไฟล์ไว้ที่ เราใช้ keyword “package” ในการระบุว่า class ของเราอยู่ใน package ใด package myPackage; public class A { public void print() { System.out.println(“This’s class A”); } จัดเก็บไฟล์ไว้ที่ C:\Myjava\myPackage

Package สามารถเรียกใช้ class A ได้ 2 แบบ คือ class PackageTest1{ public static void main(String args[]){ new myPackage.A().print(); } import myPackage.A; class PackageTest2{ public static void main(String args[]){ new A().print(); }

Scope of Visibility in Extended Classes Accessible to public protected default private Same class, Same Package ☺ Sub class, Same package Other class, Same package ☻ Sub class, Other package Other class, Other package

Same Class, Same Package package p1; Class One { public String pub = “pub”; protected String pro = “pro”; String def = “def”; private String pri = “pri”; public void print() { System.out.println(pub+pro+def+pri); }

Sub Class, Same Package package p1; Class SubCsameP extends One { public void print() { System.out.println(pub+pro+def); }

Other Class, Same Package package p1; Class OtherCsameP extends One { public void print() { One o = new One(); System.out.println(o.pub+o.pro+o.def); }

Sub Class, Other Package package p1; Class SubCotherP extends p1.One { public void print() { System.out.println(pub+pro); }

Other Class, Other Package package p1; Class OtherCotherP { public void print() { p1.One o = new p1.One(); System.out.println(o.pub); }

Constructor Chaining เมื่อมีการสร้าง instance ของคลาสลูกขึ้น constructors ของคลาสบรรพบุรุษทั้งฟมก จะถูกทำงาน class A {A() {System.out.println(“A”);}} class B extends A { B() {System.out.println(“B”);} } Class ConstructorChain { public static void main(String args[]) { new B();} A B

Super Reference 1 2 class A { int a; void print() { System.out.println(a);} } class B extends A { B(int x, int y){super.a = x; this.a = y;} void print() { super.print(); System.out.println(a);} class Super1{ public static void main(String args[]){ B b = new B(1,2); b.print(); 1 2

Super Reference ใช้ keyword ว่า “super” แทน class ที่ inherite เพื่อใช้ในการอ้างถึง member ของ super class ในการอ้าง super จะหมายถึงตัว data member ตัวแรกที่เจอในสายของบรรพบุรุษ เช่น A B C int x Ext A Ext B int x This.x Super.x

Super Constructors class A { A() { System.out.println(‘A’);} A(char c) { System.out.println(c); } } class B extends A { B() { // super(‘a’); System.out.println(‘B’); class SuperConstructor { public static void main(String args[]){new B();}

Shadowing ถ้าเรากำหนด data member ในคลาสลูกมีชื่อเหมือนกับ data member ในคลาสแม่ ชื่อของลูกจะบัง(shadow)ชื่อในคลาสแม่ class A {int x = 1;} class B extends A {float x = 2.0f;} class shadowing { public static void main(String args[]) { B b = new B(); System.oout.println(b.x); }

overriding ถ้าเรากำหนด method ในคลาสลูกมี signature เหมือนกับ method ในคลาสแม่ พฤติกรรมของลูกจะลบล้าง(override)พฤติกรรมในคลาสแม่ class A {void print() {print.out.println(‘A’);}} class B extends A { void print() {print.out.println(‘B’); } class Overriding { public static void main(String args[]) { new B().print();