1. Trang chủ
  2. » Tất cả

MOB1013-Slide 8 - Lop nang cao

24 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 680,42 KB

Nội dung

L P TRÌNH JAVA BÀI 8: KI N TH C NÂNG CAO V PH TH C VÀ L P NG M C TIÊU K t thúc h c b n có kh n ng Hi u sâu h n v hàm t o Phân bi t c tham bi n tham tr S d ng tham s bi n i Bi t cách s d ng static, final Hi u thu t toán qui V N V CONSTRUCTOR 1) N u m t l p không nh ngh a constructor Java t ng cung c p constructor m c nh (không tham s ) cho l p 2) Trong m t constructor mu n g i constructor khác l p s d ng this(tham s ), mu n g i constructor c a l p cha s d ng super(tham s ) 3) N u constructor không g i constructor khác t g i constructor khơng tham s c a l p cha super() 4) L i g i constructor (super() ho c this()) khác ph i l nh u tiên 5) Khi ã nh ngh a constructor cho m t l p ch c phép s d ng constructor t o i t ng TR C NGHI M Hãy cho bi t o n mã l nh sau sai âu? sao? public class Parent{ public Parent(int x){} } public class Child extends Parent{ } GI I THÍCH Chi u theo i u 1) i u 3) slide tr t ng ng public class Parent{ public Parent(int x){} } public class Child extends Parent{ public Child(){ super() C theo } Parent khơng có } constructor khơng tham nên gây lúc c ta có s DEMO H hóa slide THAM S PH NG TH C Khi truy n tham s vào m t ph ng th c, n u ph ng th c có làm thay i giá tr c a tham s giá tr c a tham s sau g i ph ng th c có b thay i hay không? x=3 X[0]=3 void m(int x){ x+=5; } x=? void m(int[] x){ x[0]+=5; } X[0]=? PHÂN LO I THAM S Tham Tham M Class Interface Tham Các nguyên TRUY N THAM S CHO PH Khi ph ng th c làm thay NG TH C i giá tr c a tham s N u tham tr : giá tr c a tham s s không b thay i N u tham bi n: giá tr c a tham s s b thay i theo x=3 X[0]=3 void m(int x){ x+=5; } x=3 void m(int[] x){ x[0]+=5; } X[0]=8 DEMO H hóa B sung thêm tham làm thay tham K tra có thay hay khơng sau THAM S BI N I (VARARGS) Tham s bi n i tham s truy n vào ph ng th c v i s l ng tùy ý (ph i ki u) void m(int…x){…} m(2,6,8) G m(2) int[] x = {2,6,8} m(x) TRUY N THAM BI N I (VARARGS) B n ch t c a tham s bi n i m ng nh ng truy n tham s b n có th truy n vào nguyên m ng ho c li t kê ph n t Trong m t hàm, ch có th khai báo nh t m t tham s ki u varargs ph i tham s cu i int sum(int…x){ int s = 0; for(int a : x){ s += a; } return s; } int s1 = sum(2,7) int s2 = sum(3,8,3,7,4) H Thêm thành DEMO hóa sum() ghép n STATIC T khóa static c s d ng nh ngh a cho kh i thành viên t nh (l p n i, ph ng th c, tr ng) public class MyClass{ static public int X; static{ X+=100; } static public void method(){ X+=200; } static class MyInnerClass{} } MyClass.X = 700; MyClass.method() STATIC  Kh i static {} s ch y tr c t o i t ng ho c truy xu t b t k thành viên t nh khác  Thành viên t nh c a l p c s d ng cl pv i i t ng c t o t l p ó  Có th truy c p n m t thành viên t nh thông qua tên l p mà không c n tham chi u n m t i t ng c th  Tr ng static d li u dùng chung cho t t c i t ng c t o t l p ó  Trong kh i ph ng th c t nh ch c truy c p n thành viên t nh khác mà không c phép truy c p n thành viên thông th ng c a class STATIC public class MyClass{ static public int X = 100; static{ X+=100; } static public void method(){ X+=200; } } MyClass o = new MyClass(); o.X += 300; MyClass.X += 500; MyClass.method() MyClass.X, o.X có giá DEMO H G hóa slide thích NH NGH A H NG Trong Java có lo i h ng L p h ng l p không cho phép th a k Ph ng th c h ng ph ng th c không cho phép ghi è Bi n h ng bi n không cho phép thay i giá tr S d ng t khóa final nh ngh a h ng final public class MyFinalClass{…} public class MyClass{ final public double PI = 3.14 final public void method(){…} } CH N O N MÃ ÚNG final public class Parent{…} public class Child extends Parent{ … } public class MyClass{ final int PI = 3.14; public void method(){ PI = 3.1475; } } public class Parent{ final public void method(){…} } public class Parent{ public void method(){…} } public class Child extends Parent{ public void method(){…} } public class Child extends Parent{ public void method(){…} } L P OBJECT Khi nh ngh a m t l p mà không k th a t m t l p khác m c nh k th a l p Object Nh v y m i l p u có l p cha ch nh t m t l p khơng có cha Object L PN I  L p n i l p c khai báo bên m t l p khác  Có hai lo i: l p n i t nh l p n i thông th ng  L p bên ch có th xác nh ph m vi l p ngồi có th truy c p thành viên c a l p bao public class MyClass{ static public class MyInnerStaticClass{} public class MyInnerClass{} } S MyClass.MyInnerStaticClass x = new MyClass.MyInnerStaticClass(); MyClass.MyInnerClass y = new MyClass().new MyInnerClass(); QUY M t ph ng th c g i Ph i có l nh d ng quy ph ng th c tránh vòng l p vô h n  qui d hi u nh ng r t t n tài nguyên public void sort(int[] a, int i){ if(i >= a.length){ return; } for(int j = i + 1; j < a.length; j++){ if(a[i] < a[j]){ int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } sort(a, i + 1); } DEMO H hóa sort() T NG K T N I DUNG BÀI H C Tìm hi u sâu v constructor Phân lo i tham s Tham s bi n i S d ng static  nh ngh a h ng L p n i  quy ... i tham s truy n vào ph ng th c v i s l ng tùy ý (ph i ki u) void m(int…x){…} m(2,6 ,8) G m(2) int[] x = {2,6 ,8} m(x) TRUY N THAM BI N I (VARARGS) B n ch t c a tham s bi n i m ng nh ng truy n... a tham s s b thay i theo x=3 X[0]=3 void m(int x){ x+=5; } x=3 void m(int[] x){ x[0]+=5; } X[0] =8 DEMO H hóa B sung thêm tham làm thay tham K tra có thay hay khơng sau THAM S BI N I (VARARGS)... int sum(int…x){ int s = 0; for(int a : x){ s += a; } return s; } int s1 = sum(2,7) int s2 = sum(3 ,8, 3,7,4) H Thêm thành DEMO hóa sum() ghép n STATIC T khóa static c s d ng nh ngh a cho kh i thành

Ngày đăng: 03/05/2018, 11:00

w