a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 120|回复: 0

[基础知识] Java学习知识点要求(3)

[复制链接]
发表于 2012-8-4 12:37:27 | 显示全部楼层 |阅读模式
Java学习知识点要求(3)
1 i% t1 ^$ a9 i" A3、interface的定义、作用、使用方法。
) n/ l1 S* j6 R' P% a+ z(接口中的方法都是抽象方法,变量都是static、public、final的类型。)- ~; z8 U8 b$ f
(1)接口的定义:
  ~/ J8 o2 K: u' s' ~[修饰符]interface 接口名[extends 父接口名1,父接口名2,父接口名3,……]
0 x: s$ m, p8 A5 `2 Y% u{ 6 W6 }8 f7 M5 A7 A
[public static final]属性数据类型 属性名1=值;
! O7 P/ r. H/ i2 |2 j+ l  R' S! d……;- B$ M) s- s$ l) ~' W. |( K
返回值类型 方法名(形参表)[throw 异常名列表];来自www.Examw.com
6 {7 l. L' a7 X) F; K) L& {+ h. I……;
7 h5 h! f: C; F. e: i1 K} ! Q- d6 ]% A1 e% R2 z5 |- M
例:public interface Product{
( S9 Q4 _7 }0 O9 k7 O# ^ static final String MAKER=”My  Corp”;, v; B- C& s  v8 x2 @5 _5 M
static final String PHONE=”555-123-4567”;
7 k" E. R8 n5 J, w7 P4 p, `( x public int getPrice(int id);}& }+ G9 @- A- e7 g5 O0 ]7 V$ z/ A  [
(2)实现一个接口的步骤如下:. V  t( U" B9 B
首先在类说明里用implements关键字说明该类将要实现的一个或多个接口,
; X+ D- M: B7 c3 x2 x1 ]7 q然后在类体里面完成该接口里所有方法的代码,
0 ~& _1 {% i$ N! q+ ?最后才能使用这些被实现了的方法。* D8 Z0 |7 ~9 E  V# y1 e
(3)实现接口的类的声明形式如下:* X4 a/ |  ]& v6 E2 T
[类修饰符]class 类名[extends 父类名][implements 接口名列表]
  ]! M( L5 P9 d; ?1 q     例:下面是一个Shoe类实现Product接口的例子& |7 ?+ [0 J& ]
public class Shoe implements Product{0 Z& ]9 G- r: m4 f$ Q( K3 e4 T
public int getPrice(int id){6 v5 A6 a/ A1 P: k; f" W0 E
if(id==1)  return(5);
. ]' Q7 _2 Z. Q, [7 T/ z% X" N3 Delse  return(10); }
  `/ _( r9 r) H. E: W" g- |5 \4 Ypublic String getMaker(){
% L* X  K! f- `5 r/ `+ rreturn(MAKER);
0 a8 W7 C4 B9 I" B}}% l9 M7 w* c* l
(4)接口具有多重继承的特点,即一个接口可以有多个父接口。应用继承性,可以把已经开发好的接口的代码扩展成更大的子接口。 & a9 I% J% a0 z! \3 b# L
例如:$ t9 G: A4 V) v7 i5 F) P: j
interface Productlike extends Product{3 P) A( ~2 n) X# R/ h
public String getPhone();}- v% C9 N6 x2 x; m* p% `
接口和抽象类的不同:
& L5 X. h: `% \( J% l接口只包含常量和方法的定义,而没有方法的实现。
7 Z$ f; q" o: s( q接口中的常量只能用public和static修饰,如果不声明,则默认为public static;接口中的方法都是抽象方法,只能被public修饰,如果不声明,则默认为public abstract。3 T  f: Y) q7 F3 {5 l
与类继承不同,一个接口可以继承多个父接口,而且允许没有父接口。) M9 d7 u- L0 X6 e
4、package的定义、作用,带包的类的运行方法,有包时classpath的配置内容。3 }9 U$ F7 U( ~( G8 O! i, e$ b4 x; a9 m7 V
(1)包(package)是一组相关的类和接口的集合,相当于其他语言中的库函数。Java的每个类都包容在相应的某个包中。
9 c1 {+ z9 \6 m% M# s(2)创建包的格式为:package packageName1[.packageName2[.packageName3…]];
2 c1 \, i, M4 ~! {' C) c* L例如:package pkg1;9 B9 c4 {. [. h5 J- n7 A
?      package pkg2.pkg3;
) A  f5 a2 w3 ?(3)两种引用方法:0 \- h! D) O# [- Z
一种方法是使用类的全限定名称来访问;实际类的名字应该是包名加点号运算符加类名。
; i% P9 a( {& R. }2 ?. c6 x例如,用全限定名称使用类pkg3。   pkg2.pkg3 PKG=new pkg2.pkg3();
( a, ?7 X2 T  X0 l另一种方法是用import语句引入包,然后使用。
" y+ e' U0 E9 E  @# a格式如下:import package1[.package2…]. (classname|*);* |5 u! f+ }" [! t* ]
例如下面的语句体现了两种引用形式:
! \% v! N1 J& Q8 }? import   java.io.*;5 Z4 Z. a# ?! F& |" W
? import   java.util.Date;
/ r& S5 K6 K  i4 b) F/ T' A3 S(4)带包的类的运行方法
1 I) k! z. A3 Q) OJava  报名.类名;
* x, t4 [+ B$ z$ X) S* ]  例如  Java  pkg2.pkg3.test;; j4 K3 ~! g+ \% X, a/ F, c
(5)有包时classpath的配置内容
3 a! g) ?: L. Y  T例如包放在c:下面几 类放在 c:/ pkg2/pkg3# Z- N8 x$ E* D" f) @0 E; l6 h
则classpath 应为 c:' Z9 v& n7 Z) S. q, o4 D* ?' r
5、构造方法的定义、作用、语法格式,构造方法的继承规则。
+ S0 R+ S/ u8 D' ~! i4 Z(1)构造方法是用来初始化新创建的对象的一种特殊的方法。 . w0 K! E& X! h
     构造方法说明:
7 s' G  w: T/ Z4 p4 M/ C/ Z* s# }4 n     [构造方法修饰符]类名([形参列表])[throws 异常列表]2 q+ i& j. }/ z# P& `( K
     {构造方法体}
/ S0 Z2 u2 E1 y3 b  ^1 b* T构造方法举例:4 \$ u7 m) ~3 d
class Point{% j3 G, k+ T8 A3 I- r: U+ B: o
int x,y;, a0 V2 D5 Y  G& M, @
Point(){
& ~$ b  q+ p& p6 i6 tx=0;y=0;}
0 g# P  c& _  X6 E) c- Q8 l2 J, }. dPoint (int x,int y)1 b) o& \1 Y8 H* g/ o
{this.x=x;this.y=y;}}
" E  |) S8 k* t% Y3 h1 c2 W(2)构造方法有以下特点:
* }3 q( x( [, G, ~8 \构造方法名与类名相同;. Q& N+ t" @" h
构造方法无任何返回值和返回类型;
" y' p0 s: l' I4 o6 {. e- l构造方法不能直接通过方法名引用,必须使用运算符new调用;
: j3 w; a( _( u0 P. k. |0 e* l每个类可以有零个或多个构造方法。
( V7 y0 v( g$ E1 V0 @2 b构造方法的说明中只能带public,protected和private等表示访问权限的修饰符。5 b4 G, Q* k! [
在构造方法的实现中,也可以进行方法重载。一个类可以有任意数目的构造方法,不同的构造方法根据参数的不同决定要初始化的新对象状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-6 01:32 , Processed in 0.234592 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表