⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e.txt

📁 清华本科全套java课件 经典不用多说
💻 TXT
字号:
//-------------------例题1 封装----------------
public class test1{ 
 public static void main(String[] args) {
  BadElevator e1 = new BadElevator();
     e1.doorOpen=true;
     e1.doorOpen=false;
     e1.floor--;          // 到地下室了
     e1.floor++;
     e1.floor=7;          // 没有7层
     e1.doorOpen=true;    // 门开,住户上下电梯。
     e1.doorOpen=false;
     e1.floor=1;          // 到第一层
     e1.doorOpen=true;    // 门开,住户上下电梯。
     e1.floor++;          // 门还没关,电梯就开了。
     e1.doorOpen=false ;
     e1.floor-- ;
     e1.floor-- ;         
  }
}

public class BadElevator{
  public boolean  doorOpen=false;
  public int floor = 1;
  public final int TOP_FLOOR=5;
  public final int BOTTOM_FLOOR=1;
}

public class test2 {
  public static void main(String args[])  {
    Elevator e2 = new Elevator();
    e2.openDoor();
    e2.closeDoor();
    e2.goDown();
    e2.goUp();
    e2.goUp();
    e2.openDoor();
    e2.closeDoor();
    e2.goDown();
    e2.openDoor();
    e2.goDown();
    e2.closeDoor();
    e2.goDown();
    e2.goDown();
    int curFloor = e2.getFloor();
    if (curFloor!=5 && !e2.isOpen()) e2.setFloor(5);
    e2.openDoor();
    e2.closeDoor();
    e2.setFloor(10);
    System.out.println("------------end of test------------------ ");
  }
}
public class Elevator
{
  private boolean doorOpen=false;
  private int floor =1 ;
  private int weight = 0 ;
  final int CAPACITY=1000 ;
  final int TOP_FLOOR=5 ;
  final int BOTTOM_FLOOR=1 ;

  public void openDoor() {
    doorOpen=true ;
  }

  public void closeDoor() {
    checkWeightSensors();           //test weight 
    if (weight<=CAPACITY)
       doorOpen=false ;
    else 
      for(int counter=0;counter<10;counter++)
          System.out.print((char) 7) ;
  }

  private void checkWeightSensors() {
    weight=(int) (Math.random()*1500) ;
    System.out.println("the weight is " + weight);
  }

  public void goUp() {
    if(!doorOpen) {
      if(floor<TOP_FLOOR) {
        floor++ ;
        System.out.println(floor) ;
      }
      else 
        System.out.println("already on top floor");
    }
    else 
      System.out.println("door still open!");
  }

  public void goDown() {
    if(!doorOpen) {
      if(floor>BOTTOM_FLOOR) {
        floor-- ;
        System.out.println(floor) ;
      }
      else 
        System.out.println("already on bottom floor");
    }
    else 
      System.out.println("door still open!");
  }

  public void setFloor(int goal) {
    if(goal>=BOTTOM_FLOOR && goal <=TOP_FLOOR) {
         while(floor!=goal) 
           if(floor<goal) goUp() ;
           else  goDown();
         System.out.println("current floor is :" + floor);
    }
  }

  public int getFloor() {
    return floor ;
  }

  public boolean isOpen() {
    return doorOpen ;
  }  
}
//----------------------例题2-方法的参数传递--------------
public class PassTest {
  float  m_float ;
  void  change1(int pi) {
        pi = 100;
  }
  void change2(String ps) {
        System.out.println(ps);
        ps=new String("Right") ;
        System.out.println(ps);
  }
  void change3(PassTest  po ) {
        po.m_float=100.0F ;
  }
  public static void main(String[] args) {
   PassTest  pt = new PassTest()  ; 
   int  i = 22 ;
   pt.change1( i )  ;
   System.out.println("i value is " + i);
   String  s = new String( "Hello" ) ;
   pt.change2( s ) ;
   System.out.println("s value is " + s);
   pt.m_float = 22.0F ; 
   pt.change3(  pt ) ;
   System.out.println("Current pt.m_float is   " + pt.m_float);
  }  // main() 
}  // class

//----------------例题3   数组 --------------------
public class a {
  public static void main(String[] args) {
    int[] aaa ={23,14,35,2,71,55,82,41,11,6};
    Ary ay1 = new Ary(aaa);
    ay1.print();
    ay1.order();
    ay1.print();
    for(int m=0;m<aaa.length;m++)
      System.out.print("---" + aaa[m]);
    System.out.println();
    Ary ay2 = new Ary(ay1.subAry(2,6));
    ay2.print();
  }
}
class Ary {
  int[] m_ary ;
  
  Ary(int[] p){
    m_ary = p ;
  }
  void print(){
    for (int i=0;i<m_ary.length;i++) System.out.print(m_ary[i] + "  ");
    System.out.println();
  }
  void order(){
    int j,temp;
    boolean exchange=true; 
    j = m_ary.length-2;
    while(j>=0 && exchange){
      exchange=false;
      for(int i=0;i<=j;i++) 
        if(m_ary[i]>m_ary[i+1]) {
          exchange=true;
          temp = m_ary[i] ;
          m_ary[i] = m_ary[i+1] ;
          m_ary[i+1] = temp;
        }
      j = j-1 ;
    }
  }
  int[] subAry(int a1,int a2){
    int[] sa  ;
    if(a1>=0 && a1<a2 && a2<m_ary.length){
       sa = new int[a2-a1+1];
       for(int i=0,j=a1;j<=a2; i++,j++) sa[i] = m_ary[j]  ;
       return sa ;
    }
    else {
       System.out.println("error index");
       return new int[1];
    }
  }
}

//------------例题4----方法的重载-----------------
public class test {
  public static void main(String[] args){
   Ov.m1(5);
   Ov o = new Ov();
    o.m1(3);
    o.m1(3.14F);
    o.m1(3.14);
    o.m1(3,3.14F);
    o.m1(3.14F,3);
    short j=128;
    o.m1(j);
  }
}
class Ov{
  void m1(int i){
    System.out.println("----m1(int)----");
  }

  int m1(int i){
    return i  ;
  }

  void m1(float f){
    System.out.println("----m1(float)----");
  }
  void m1(double d){
    System.out.println("----m1(double)----");
  }
  void m1(int i, float f){
    System.out.println("----m1(int , float)----");
  }
  void m1(float f,int i){
    System.out.println("----m1(float , int)----");
  }
  static void m1(float f,int i){
    System.out.println("----static m1(int)----");
  }

}

//------------例题5------测试构造函数的继承问题-----
public class test {
	public static void main(String args[]){
      a   a1 = new a();         
      System.out.println(a1.x);
      a   a2 = new a(5);
      System.out.println(a2.x);
	  sa sa1 = new sa() ;
      System.out.println(sa1.x);
      sb sb1 = new sb() ;
      System.out.println(sb1.x);
      sb sb2 = new sb(5);
      System.out.println(sb2.x);
      sb sb3 = new sb(5,100);
      System.out.println(sb3.x);
      ssb ssb1 = new ssb();
      System.out.println(ssb1.x);
    }
}
class a {
    int x=1 ;
    a(){
        x=10;
    } 
    a(int p1){            //p1=5
		x=x+p1;
	}
}
class sa extends a { 
}
class sb extends a { 
    sb() {
       x=x+3;
    }
    sb(int p1) {                 //p1=5
        x=x+p1;
    }    
    sb(int p1,int p2){           //p1=5,p2=100
        super(p1);
        x=x+p2;
	}
}	
class ssb extends sb {
    ssb() {
        x=x+6 ;
    }
}
//结果  10 6 10 13 15 106 19


--------------------例题6   testOverride-----------
public class phone
{
public static void main(String args[])
{
	D200_Card my200 = new D200_Card(12345678,1234,50.0,"200");
	if(my200.performDial(12345678,1234))
        System.out.println("拨打电话后剩余金额为:"+my200.getBalance());
	if(my200.performDial())
        System.out.println("拨打电话后剩余金额为:"+my200.getBalance());
}
}
abstract  class  PhoneCard
{
	double balance;

	abstract boolean performDial();
	double getBalance()
	{
		return balance;
	}
}
abstract  class  Number_PhoneCard extends PhoneCard
{
	long  cardNumber;
	int  password;
	String  connectNumber;
	boolean connected;
	
    final boolean performConnection(long cn,int pw)
	{
		if(cn == cardNumber && pw == password)
		{
			connected = true;
			return true;
		}
		else
			return false;
	}
}
final class  D200_Card extends Number_PhoneCard
{
    final double  additoryFee=0.1;
	
	D200_Card(long cn,int pw,double b,String c)
	{
		cardNumber = cn;
		password = pw;
		balance = b;
		connectNumber = c;
	}
	boolean performDial()
	{
		if(!connected)
			return false;
		if( balance > (0.5 + additoryFee ))
		{
			balance -= (0.5 + additoryFee);
			return true;
		}
		else
			return false;
	}
	boolean performDial(long cn,int pass)
	{
		if(performConnection(cn,pass))
			return performDial();
		else
			return false;
	}
    double getBalance()
	{
		if(connected)
			return balance;
		else
			return -1;
	}
}

----------------例题11-a ---------------------
// -------方法覆盖---------
public class a {
  public static void main(String[] args){
    Employee emp = new Employee("赵兵",28,500.0F);
    Manager  mgr = new Manager("徐军",35,800.0F,200.0F);
    Director dor = new Director("黄帅",45,1000.0F,500.0F,"2222","d01");
    System.out.println(emp.getInfo());
    System.out.println(mgr.getInfo());
    System.out.println(dor.getInfo());
    System.out.println();
  }
}

class Employee {
  String  name ;
  int  age ;
  float  salary = 300 ;

  Employee(String n,int a,float s){
    name = n ;
    if(a>=18 && a<=60) age = a ;
     else {System.out.println("illegal age");
           System.exit(1); }
    salary = s;
  }
  
  Employee( String n , int a ) {
    this(n ,a ,300 ) ;   
 }
  void  upSalary(float inc) {
    salary = salary + inc ;
  }
  String getInfo() {
    return "employee :" + name + "\t" + "salary: " + salary ;
  }
}

class  Manager extends Employee {
   float  allowance ;
   Manager(String n,int a,float s , float aa){
     super(n,a,s);
     allowance = aa ;
   }
   void setAllowance(float a) {
     allowance = a ;
   }
  String getInfo() {
    return super.getInfo() + "\t" + "allowance :" + allowance ;
   }
}
class Director extends  Manager {
   String  telephone  ;
   String  department ;
   Director(String n,int a,float s,float aa,String tel,String dep){
     super(n,a,s,aa);
     telephone = tel ;
     department = dep;
   }
   void setTel(String tel) {
     telephone = tel ;
   }
   String getInfo() {
     return name + "  is the management of " + department ;
   }
}
---------------例题11-b ---多态--------------
public class b {
  public static void main(String[] args){
    Employee e1 = new Employee("wang1",30,500);
    Employee e2 = new Manager("wang2",40,800,200);
    Employee e3 = new Director("wang3",50,1000,500,"3333","d02");

    System.out.println(e2.name);
    System.out.println(e2.allowance);
    e2.upSalary(200.0F);
    e2.setAllowance(500.0F) ;

    e3.age = 55 ; 
    e3.Department = "d03";
    e3.upSalary(500);
    e3.setTel("8888");

    System.out.println(e1.getInfo());
    System.out.println(e2.getInfo());
    System.out.println(e3.getInfo());
  }
}

----------------例题11-c  up cast  -------------------
public class c {
  public static void main(String[] args){
    Director d = new Director("Jack",45,1000.0F,500.0F,"4444","d03");;

    Manager m =d ;            // Manager m = (Manager)d
    m.setAllowance(500);
    System.out.println(m.getInfo());
    System.out.println();
    m.setTel("2222");         //?

    Employee e = d ;          // Employee e = (Employee)d
    e.upSalary(1000.0F) ;
    System.out.println(e.getInfo());
  }
}

-----------------例题11-d  down cast--------------------
public class d {
  public static void main(String[] args){
    Employee e1 = new Employee("Tom",30,500);
  Manager m1 = e1;             //compiler error
  Manager m2 = (Manager)e1;    //runtime error

    Employee e2 = new Director("Bob",50,1000,500,"5555","d04");
    if (e2 instanceof Director) {
      System.out.println( ((Director)e2).telephone);
      Director d = (Director)e2 ;
      d.setTel("9999");
      d.department="d05";
      System.out.println(d.getInfo());
    }
  }
}

//-----------11-e  参数多态 ----------------
class e {
 public static void main(String[] s){
   Manager m = new Manager(500);
   System.out.println(Employee.findTax(m));
 }
}
class Employee {
   float salary;
   static  float  findTax(Employee e){
     return e.salary * 0.1F;
   }
}
class Manager extends Employee{
   float allowance ;
   Manager(float sal){
    salary = sal ;
   }
   void setAllowance(float a){
     allowance = a ;
   }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -