一生有你llx 阅读(44) 评论(0)

包:管理众多的类,使用package语句,包应该对应着文件系统的目录结构,在package语句中用.来表示目录的层次结构,package语句必须是第一条语句

package cn.pk
class  test
{
    public static  void main(String[]  args) 
    {}
}
javac -d . test.java  在当前目录下生成包,  javac -d e:\java\code\   test.java  在指定目录下生成包
java cn.pk.test

import   java.io.file   引入/javaio/file类
java中的lang包会自动引入,  同一个包中的类可以直接引用,无需import导入
import  java.io.File
class  test
{
    public static void main(String[]  args)
    {
    File f;
    }
}

类的修饰符:public       default(缺省的)只能在同一个包中访问
                  final   最终的类,不能派生子类       abstract  抽象类
方法的修饰符:

      public       protected      default     private
 同  类        √   √   √   √ 
 同  包  √   √   √   
 子 类  √   √     
 通 用  √       
final方法:继承的时候不会被覆盖或者修改,private和static就是final
abstract方法:抽象方法,没有方法体。含有抽象方法的类就必须是抽象类,抽象类不能实例化一个对象。
                    如果一个子类没有实现父类的抽象方法,那么子类就必须是抽象方法

java垃圾回收:
class Garbage
{
 int index;
 static int count;
 Garbage()
 {
  count ++;
  System.out.println("object " + count + " construct");
  setID(count);
 }
 
 void setID(int id)
 {
  index = id; 
 }
 
 protected void finalize()              //垃圾回收器,低优先级,靠gc()函数调用
 {
  System.out.println("object " + index ); 
 }
 public static void main(String[] args)
 {
  new Garbage(); 
  new Garbage();
  new Garbage();
  new Garbage();
  System.gc();                      //运行垃圾回收器
 }
}

接口:模块之间交互,一个类要实现接口中所有的方法,这样才可以实例化。接口中所有的方法都是public abstract,接口允许多继承,这点和类不一样

interface Sport
{
 void run();
 void jump();
}

class Athlete implements Sport
{
 public void run()
 {
  System.out.println("短跑");
 }
 
 public void jump()
 {
  System.out.println("三级跳");
 }
 
 public static void main(String[] args)
 {
  Athlete zh = new Athlete();
  zh.run();
  zh.jump();
 }
}

一个电脑接口的实例
/***************************显卡接口*********************************/
interface VideoCard
{
 void display();
 String getName();
}                 //显卡接口

/****************显卡类***********************************?
class Dmeng implements VideoCard
{
 String name;
 public Dmeng()
 {
  name = "Dmeng card!";
 }
 
 public void setName(String name)
 {
  this.name = name;
 }
 public void display()
 {
  System.out.println("Dmeg is working!");
 }
 
 public String getName()
 {
  return name;
 }
}

/**********************主板类******************************/
class MainBoard
{
 VideoCard vc;
 
 void setVideoCard(VideoCard vc)
 {
  this.vc = vc;
 }
 
 void run()
 {
  System.out.println(vc.getName());
  vc.display();
 }
}

/*************************电脑类***************************/
class Computer
{
 public static void main(String[] args)
 {
  Dmeng d = new Dmeng();
  MainBoard b = new MainBoard();
  
  b.setVideoCard(d);
  b.run();
 }
}