java之路(4) 转载

       第四节:JAVA中的继承和抽象类
1. JAVA中的继承使用extends,JAVA中不允许多继承
2. JAVA中默认支持动态绑定,如果不希望子类重写父类的函数,使用final关键字。
3.this:代表当前对象。
4.super:调用父类的方法或者父类的构造函数。
5.instanceof:判断一个对象是否是类的实例.
  (1)Employee e=new Employee();
  if(e instanceof Employee)
   {
         System.out.println("OK");
   }
  else
  {
     System.out.println("NO");    
  }
  (2)
   Employee m=new Employee();
    if(m instanceof Manager)
   {
         System.out.println("OK");
   }
  else
  {
     System.out.println("NO");    
  }
 (3)
  Employee e=new Manager();
  if(e instanceof Employee)
   {
         System.out.println("OK");
   }
  else
  {
     System.out.println("NO");    
  }
6.final的使用总结:
 (1)final修饰变量:说明该变量是一个常量,程序运行过程中不可以修改。
 (2)final修饰方法:说明该方法在子类中不可以重写。
 (3)final修饰类:说明该类不可以继承。同时该类中的方法全部为final.
7.动态绑定的置换原则:
  程序中出现超类对象的任何地方都可以用子类的对象进行替换。
8.抽象类:
  (1)当自身部分行为无法确定时(子类确定)时,可以把该类的方法设计为抽象方法,具有抽象方法的类称作抽象类。
  (2) 抽象方法不可以实例化对象。但是抽象类可以定义抽象类变量。
  (3) 使用abstract定义抽象类,同时抽象方法必须使用abstract修饰。
    //抽象类的定义:
   public abstract class Shape {
    public Shape() {
    }

    public Shape(int x,int y,int w,int h)
    {
      this.pointx=x;
      this.pointy=y;
      this.weight=w;
      this.hight=h;
    }
    protected int pointx;
    protected int pointy;
    protected int weight;
    protected int hight;
     //抽象方法的定义
    public abstract void draw();
}

class Recenge extends Shape
{
    public Recenge(int x,int y,int w,int h)
    {
      //调用父类的构造函数
       super(x,y,w,h);
    }
    //父类方法的重写
    public void draw()
    {
        System.out.println("RECENGE..........");
    }
}

//继承父类
class Elipse extends Shape
{
    public Elipse(int x,int y,int w,int h)
     {
        super(x,y,w,h);
     }
     public void draw()
     {
         System.out.println("Elipse..........");
     }

}
 
class Graphics
 {
    //置换原则
     public void draw(Shape s)
     {
    //JAVA中的动态邦定
         s.draw();
     }
     public static void main(String[] args) {
         Graphics g=new Graphics();
         Shape s=new Elipse(10,20,10,10);
         g.draw(s);
         g.draw(new Recenge(10,10,10,10));
        
     }
 }
9.类的访问权限:
        public     protected  默认    private
   (1)public :类的任何地方都可以进行访问:
   (2)protected :类的内部和子类可以进行访问以及包内:
   (3)默认:相同的包内可以访问。
   (4)private: 类的内部可以进行访问。
10.Object类
  (1)Object 类是所有的类的超类。
  (2)从子类到超类是置换原则,从超类到子类需要强制类型转换。
  (3)Object中的equals方法按照地址进行比较,因此通常情况下我们需要重写
    equals()方法。
  (4)hashCode()得到对象的散列码(默认是对象的存储地址)
  (5)toString(): 返回该对象的字符串描述.
11.JAVA 中的容器:
   (1)泛型数组:
     ArrayList<T> list=new ArrayList<T>();
      (利用数组实现的一种容器),存储必须是JAVA的类类型。只能 JDK1.5大版本中使用,1.4的使用方式:ArrayList list=new ArrayList();
  (2)LinkedList<T> list=new LinkedList<T>();
    利用链表实现的线性容器。
  (3)TreeSet<T> set=new TreeSet<T>():利用红黑树实现的集合。集合内的所有的数据都是有序排列。
  (4)HashSet<T>set=new HashSet<T>():利用哈希码实现的集合。集合内的数据都是有序排列的。
  (5)HashMap<T1,T2>map=new HashMap<T1,T2>():利用哈希码实现的映射键值对。
  (6)TreeMap<T1,T2>map=new TreeMap<T1,T2>():利用红黑树实现的映射键值对。
12.JAVA中的从键盘输入的使用:
  (1)java.util.Scanner scanner=new java.util.Scanner();
      jdk1.5后的版本使用
     String str=     scanner.next();
     int i=    scanner.nextInt();
  (2)java.io.BufferedReader read=new java.io.BufferedReader(new InputStreamReader(System.in));
     String str=read.readline();
  (3)String str=javax.swing.JOptionPans.showInputDialog("输入字符串");
作业:
  (1)如何从字符串转化为int类型
  (2)如何从字符串转为为 double类型
  (3)如何从double转化为String
  (4)如何从int转化为String
  (5)从键盘读数据,并存入到List类型中,然后移出第一个和最后一个,并进行输出。ArrayList,LinkedList
  (6)使用TreeMap制作一个电话本系统。
  (7)从键盘读取数据,并有序输出.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值