找回密码
 注册
搜索
热搜: java php web
查看: 259|回复: 0

[笔记]java学习笔记6--接口

[复制链接]
发表于 2009-1-26 08:59:45 | 显示全部楼层 |阅读模式
[笔记]java学习笔记6--接口
1 接口:定义接口关键字interface,接口是一种特殊的抽象类
  接口中的所有方法默认都是public abstract方法
  接口中的所有属性默认都是public static final的属性

2 一个类可以实现多个接口class A implements interfaceIA,interfaceIB
  所谓实现一个接口就是实现接口里定义所有的方法,关键字implements
  接口的父类不能是类.  interfaceIA extends classA   !!!error


3 子类   父类

  接口    类     !error
  接口    接口   多继承 关键字extends   
  类      类     单继承
  类      接口   implements接口

4 接口中没有构造方法.

5 泛化:由子类抽象出父类的过程
  特化:由父类扩展出子类的过程

6 接口作用:把标准的制定者和标准的实现者分离,易于可扩展性和可移植性.
  接口回调:先有接口的定义,再有接口的使用者,最后把接口的实现者传到接口的使用者中,
  接口的使用者会通过接口来调用接口实现者的方法。

  public class TestJDBC {
        public static void main(String []args){
                Driver d=getDriver(args[0]);  
                d.connect();
        }
        static Driver getDriver(String name){
                if(name.equals("MySQL")) return new MySQLDriver();
                else if(name.equals("DB2")) return new DB2Driver();
                else return new OracleDriver();
        }
  }
  interface Driver{
        void connect();
  }
  class MySQLDriver implements Driver{
        public void connect() {
                System.out.println("connected MySQLDriver");        
        }        
  }

  class DB2Driver implements Driver{
        public void connect() {
                System.out.println("connected DB2Driver");        
        }        
  }

  class OracleDriver implements Driver{
        public void connect() {
                System.out.println("connected OracleDriver");        
        }        
  }

7 注意点:
  (1)一个文件只能有一个public接口,且与文件名相同.
  (2)在一个文件中不能同时定义一个public接口和一个public类.
  (3)接口与类之间只有实现关系,没有继承关系.
  (4)抽象类与类之间只有继承关系没有实现关系.
  (5)接口与接口之间只有继承关系,且允许多继承.
  (6)接口中可以不写public,但在子类实现接口的过程中public不可省略.

8  接口和抽象类
  (1)接口中不能有具体的实现,但抽象类可以。
  (2)一个类要实现一个接口必须实现其里面所有的方法,而抽象类不必。
  (3)通过接口可以实现多继承,而抽象类做不到。
  (4)接口不能有构造方法,而抽象类可以。
  (5)实体类与接口之间只有实现关系,而实体类与抽象类只有继承关系。

9  修饰符      类    属性   方法   局部变量

   final       *      *      *       *
   static             *      *      

   abstract    *             *
   public      *      *      *
   protected          *      *
   default     *      *      *
   private            *      *

10 ==和equals的区别

  基本类型用==去比较比的是值是否相等.
  如果是对象用==比是两个引用中的地址值是否相等
  判断两对象内容是否相等时用equals()方法,equals 比较两个对象内容是否相等.

11 toString()方法:给出这个对象的字符串表达形式,返回一个字符串.
   当直接打印出对象的引用,它实际输出的是这个对象的toString()方法的返回值.
   Student s1=new Student();
   System.out.println(s1);     // toString()方法的返回值

   Object类toString()方法返回值两部分: 包名加类名@地址 day5.Student@757aef
   在java里只能用这个方法来看对象的地址,但只能看,不能操作这个地址.

   字符串相加时,也会去调toStirng()方法,"hello"+str1.

12 主方法的参数:字符串数组argv   java Test  argv[0]  
   //与c++不同,命令行第三个元素才是数组的第一个元素
   主方法是程序的入口,主方法必须声明为静态的.


13字符串赋值形式:

  String s1=new String("haha");   //新开辟空间,生成一个新的字符串对象.
  String s2="haha";               //在串池找
     
  int a=5;
  int b=a<<33;
  System.out.println(b);   //结果b=10,移位运算时系统会对32求余

14 对于字符串:
   (1)对象池
   (2)不变模式: 生命周期内值不变, String s1=new String("Hello");  
   一个字符串实际是用一个字符数组来作底层的保存空间,所以不可改变值.

  在需要频繁改变字符串值时建议用StringBuffer() 可以改变值,不创建新对象

15 基本类型的包装类.把基本类型包装成相应的类类型.符合一切皆对象的天理.
   八种,保留基本类型效率高.

  除了int 和char,其余类型首字母大写即成包装类
  int                Integer
  char                Character

  int Integer String之间的类型转换(最常用的)
  int a =12;
  int      到   Integer             Integer aa = new Integer(a);
  Integer  到   int          int  i = aa.intValue();
  Int      到   String       String  str = String.valueOf(i);
  String   到   int          int  ii = Integer.parseInt(str);
  Integer  到   String       String  str = aa.toString();
  String   到   Integer      Integer bb = Integer.valueOf(str);

  int a=20;
  String s=a+"";  //加空串也可以得到一个字符串.
好好学习,天天向上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|软晨网(RuanChen.com)

GMT+8, 2024-11-23 00:40

Powered by Discuz! X3.5

Copyright © 2001-2023 Tencent Cloud.

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