MOB1013-Slide 8 - Lop nang cao

24 0 0
MOB1013-Slide 8 - Lop nang cao

Đ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

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

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan