一步步学java

2010-11-25           java培训java内容第九次课

这次课我们主要学习了java内容里很重要的一章,面向对象编程.

1.   面向对象概述:

1>     面向对象的分析(OOA,Object  Oriented  Analysis)

2>     面向对象的设计(OOD,Object  Oriented  Design)

3>     面向对象的编程(OOP,Object  Oriented  Programming)

2 面向对象的三大特点:封装,继承,多态

1>封装时需要使用修饰符public,private,protected和缺省的修饰符.

public表示公有的,public修饰的属性和方法,其他任何类都可以访问.这是最开放的访问权限.前面我们学习过的方法都是用public修饰的,其他类都可以自由的访问以修饰的方法.

private表示私有的,private修饰的属性和方法,其他任何类均不能访问,只能在当前类内部被访问.

protected表示受保护的,protected修饰的属性和方法,允许相同包中的其他类(包括子类)或非相同包的子类访问.

缺省修饰符,就是在类和方法前面没有任何修饰符,缺省修饰符的属性和方法允许相同包中的其他类进行访问,不允许其他包中的类(包括子类)访问.

实例:

package  com.huizhong

public  class  Student{

      public Student(){......}

      private  String  name;

      private  boolean isMale;

      private  int  age;

      private   String   favourite;

 

public   void   display(){....}

private  String   getSexStr(){

return   isMale?”帅哥”:”靓妹”;

}

protected  void  study(){.....}

}

:如果只有get的方法,没有set方法,称为只读属性;如果只有set方法,没有get方法称为只写属性.

方法的重载指的是:在一个类中可以定义有相同的名字,但参数不同时的多个方法,调用时会根据不同的参数表选择对应的方法.

实例:

public   class   Computer{

      public   int   add(int number1, int number2){

      return   num1+num2;

      }

      public   long  add(long number1, long number2){

      return   num1+num2;

      }

      public   int   double(double number1, double  number2){

      return   num1+num2;

      }

 

}

方法的重载要求方法名相同,方法参数不同,方法参数不同包括:

1 方法参数的数目不同

2 方法参数的类型不同

3 相同数量的参数中,不同参数类型在方法参数列表中的顺序不同。

2>java中继承使用extends关键字实现,子类继承父类的所有属性和方法(构造方法除外)。

package demo3;

 

public class Test {

public static void main(String[] args) {

      Mp3 mp3=new Mp3();

      mp3.save();

      mp3.get();

      mp3.play();

}

}

public class Mp3 extends DiskHard  {

     

      public void play(){

           System.out.println("play!!!!");

      }

}

public class DiskHard {

public void save(){

      System.out.println("save data");

}

public void get(){

      System.out.println("get data");

}

}

内容

Public

Protected

缺省

Private

同类访问

可用

可用

可用

可用

同包其他类访问

可用

可用

可用

不可用

同包子类访问

可用

可用

可用

不可用

不同包子类访问

可用

可用

不可用

不可用

不同包非子类访问

可用

不可用

不可用

不可用

3>多态:

多态在面向对象程序设计中,就是把子类的对象赋值给父类,用父类的引用调用方法的时候,具体执行方法就是子类的对象.

实例:

package demo8;

 

public class Test {

public static void main(String[] args) {

      Car c=new Bus();

      Car tran=new Tran();

      Driver driver=new Driver();

      driver.drive(tran);

     

}

}

public class Car {

public void start(){

      System.out.println("车启动");

}

public void change(){

      System.out.println("车换档");

}

public void stop(){

      System.out.println("车停止");

}

}

public class Bus extends Car {

 

      @Override

      public void change() {

      System.out.println("公交车换档");

      }

 

      @Override

      public void start() {

           System.out.println("公交车启动");

      }

 

      @Override

      public void stop() {

           System.out.println("公交车停止");

      }

 

}

public class Tran extends Car {

public void start(){

      System.out.println("火车启动");

}

 

@Override

public void change() {

      System.out.println("火车换档");

}

 

@Override

public void stop() {

      System.out.println("火车停止");

}

 

}

public class Driver {

public void drive(Car car){

      car.start();

      car.change();

      car.stop();

}

}

3  Object

Java.lang.Object类是所有类的父类,当一个类没有使用extends关键字显示继承其他类的时候,该类默认的继承了Object,因此所有类都是Object的子类,都具有Object类的方法和属性.能够被外界访问的Object类的主要成员有:

返回类型

方法名

方法说明

Object

Clone()

创建并返回此对象的一个副本

boolean

equals(Object obj)

指示其他某个对象是否与对象相等

void

finalize()

当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法

int

HashCode()

返回该对象的哈希玛值

tring

toString()

返回该对象的字符串表示

4 this关键字:

在类的方法定义中使用的this关键字代表使用该方法的对象的引用.

当必须指出当前使用方法的对象是谁时要使用this.

有时使用this可以处理方法中的成员变量和参数重名的情况.

this可以看作是一个变量,它的值是当前对象的引用.

心得体会:这次课我们学习的内容很多,都是关于面向对象的编程,在内容的理解上也是有一定的难度,这需要我们深刻的去体会和理解它,掌握它的精华,将它运用到我们的实践中去,我们就会深切的感触到他的奥妙所在,因此我们要不断地去理解,争取将它全部弄懂,弄会,能够熟练的运用它.达到我们学习的目的.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值