码迷,mamicode.com
首页 > 编程语言 > 详细

Java实习二

时间:2017-12-03 00:28:39      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:对象   部分   模拟   man   for   logs   cto   art   rac   

链表(java实现)

Link.java

public class Link{
    private Node first;
    public Link(){
        this.first = null;
    }
    //判断是否为空
    public boolean isEmpty(){
        if(this.first == null)
            return true;
        return false;
    }
    //插入头结点
    public void insertHeadNode(int data){
        Node tmp = new Node(data);
        if(this.first == null)
            first = tmp;
        else
        {
            tmp.setNext(first.getNext());
            first.setNext(tmp);         
        }
        return ;
    }
    //在第index下插入data节点
    public void insertNode(int data, int index){
        Node p = this.first;
        int cnt = 0;
        while(cnt != index){
            p = p.getNext();            
            cnt++;
        }
        Node newNode = new Node(data);
        newNode.setNext(p.getNext());
        p.setNext(newNode);
        return ;
    
    }
    //delete the head node
    public Node deleteHeadNode(){
        Node tmp = first;
        this.first = tmp.getNext();
        return tmp;
    }
    //find the data in the link
    public Node findNode(int data){
        Node p = this.first;
        while(p != null){           
            if(p.getData() == data)
                return p;
            if(p == null)
                break;
            p = p.getNext();
        }   
        return null;
    }
    //display the link
    public void displayLink(){
        Node p = first;
        while(p != null){
            System.out.println(p.getData());
            p = p.getNext();
        }
        return ;
    }   
}

Node.java

public class Node{
    private int data;
    private Node next;  
    //construction
    public Node(){
        this.data = 0;
        this.next = null;
    }
    public Node(int data){
        this.data = data;
        this.next = null;
    }
    //get 
    public Node getNext(){
        return this.next;
    }
    public int getData(){
        return data;
    }
    
    //set 
    public void setNext(Node next){
        this.next = next;
    }
    public void setData(int data){
        this.data = data;
    }
    //show 
    public void nodeDisplay(){
        System.out.println("{"+data+"}");
    }   
}

TestOfNode.java

public class TestOfNode{
    public static void main(String[] args){
        //test of Node
        Node tmp1 = new Node(100);
        tmp1.nodeDisplay();
        
        Link tmp2 = new Link();
        //test of insertHeadNode & displayLink
        tmp2.insertHeadNode(00);
        tmp2.displayLink();
        //test of isEmpty
        System.out.println(tmp2.isEmpty());
        System.out.println("+++++\n\n");
        //test of insertNode
        tmp2.insertNode(11,0);
        tmp2.insertNode(22,1);
        tmp2.insertNode(33,2);
        tmp2.insertNode(44,3);
        tmp2.insertNode(55,4);
        tmp2.insertNode(66,5);
        tmp2.displayLink();
        //test of delete the head Node
        System.out.println("++++");
        tmp2.deleteHeadNode();
        tmp2.displayLink();
        //test of find the data
        if(tmp2.findNode(3310)!=null){
            System.out.println("truely find the data:" + 3310);
        }else{
            System.out.println("fasle");
        }
        
        System.out.println("++++++");
        
        //test of InsertHeadNode
        tmp2.insertHeadNode(1111);
        tmp2.insertHeadNode(2222);
        tmp2.insertHeadNode(3333);
        tmp2.displayLink();
    }
}

排序 - 国家金牌银牌铜牌分别排序

TestOfNode.java

public class TestOfNode{
    public static void main(String[] args){
        //test of Node
        Node tmp1 = new Node(100);
        tmp1.nodeDisplay();
        
        Link tmp2 = new Link();
        //test of insertHeadNode & displayLink
        tmp2.insertHeadNode(00);
        tmp2.displayLink();
        //test of isEmpty
        System.out.println(tmp2.isEmpty());
        System.out.println("+++++\n\n");
        //test of insertNode
        tmp2.insertNode(11,0);
        tmp2.insertNode(22,1);
        tmp2.insertNode(33,2);
        tmp2.insertNode(44,3);
        tmp2.insertNode(55,4);
        tmp2.insertNode(66,5);
        tmp2.displayLink();
        //test of delete the head Node
        System.out.println("++++");
        tmp2.deleteHeadNode();
        tmp2.displayLink();
        //test of find the data
        if(tmp2.findNode(3310)!=null){
            System.out.println("truely find the data:" + 3310);
        }else{
            System.out.println("fasle");
        }
        
        System.out.println("++++++");
        
        //test of InsertHeadNode
        tmp2.insertHeadNode(1111);
        tmp2.insertHeadNode(2222);
        tmp2.insertHeadNode(3333);
        tmp2.displayLink();
    }
}

Test.java

import java.util.Arrays;

public class Test{
    public static void main(String[] args){
        Country American = new Country(46,37,38);
        Country English = new Country(27,23,17);
        Country China = new Country(26,18,26);
        Country Russia = new Country(19,18,19);
        Country Germany = new Country(17,10,15);        
            
    
        Country[] countrys = new Country[5];
        countrys[0] = American;
        countrys[1] = English;
        countrys[2] = China;
        countrys[3] = Russia;
        countrys[4] = Germany;
        Arrays.sort(countrys);
        for(Country cty:countrys)
            System.out.println(cty.gold + " " + cty.silver + " " + cty.copper + " " + cty.sum);
        
    }
}

Coffee 类 - 面向对象编程

Coffee.java

package coffee;

//增加的方法
abstract class AddImplement{
    private String name;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public abstract void add(); 
}
class AddSugarImplement extends AddImplement{
    public void add(){
        System.out.println("you have added the Sugar^_^");
    }
}
class AddMilkImplement extends AddImplement{
    public void add(){
        System.out.println("you have added the Milk ^_^");
    }
}
//抽象类的实现
public abstract class Coffee{
    private AddImplement addimpl;
    //然后在调用add进行输出
    public void add(){
        addimpl.add();
    };
    //应该先调用这个设置函数
    public void setAddImpl(AddImplement addimpl){
        this.addimpl = addimpl;
    };
}

class InstantCoffee extends Coffee{
    public void setAddImpl(AddImplement addimpl){
        System.out.println("This is an InstantCoffee^_^");
        super.setAddImpl(addimpl);
    }
}

class LatteCoffee extends Coffee{
    public void 
    setAddImpl(AddImplement addimpl){
        System.out.println("This is a LatteCoffee^_^");
        super.setAddImpl(addimpl);
    }
}

class MochaCoffee extends Coffee{
    public void setAddImpl(AddImplement addimpl){
        System.out.println("This is a MochaCoffee^_^");
        super.setAddImpl(addimpl);
    }   
}

MainTest.java

package coffee;

import java.util.Scanner;
public class MainTest {
    
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String choice = new String();
        String addsth = new String();
        while(true){
        System.out.println("What kind of coffe would you want ?");
        choice = in.nextLine();     
        System.out.println("What would you like to add ?Sugar or Milk?");
        addsth = in.nextLine();
        if(choice.equals("InstantCoffee")){         
            Coffee c1 = new InstantCoffee();
            if(addsth.equals("Sugar")){
                AddImplement a1 = new AddSugarImplement();
                c1.setAddImpl(a1);
                c1.add();
            }else if(addsth.equals("Milk")){
                AddImplement a2 = new AddMilkImplement();
                c1.setAddImpl(a2);
                c1.add();
            }else{
                System.out.println("Sorry,we don't have this kind of things *_*");
            }
        }else if(choice.equals("LatteCoffee")){
            Coffee c1 = new LatteCoffee();
            if(addsth.equals("Sugar")){
                AddImplement a1 = new AddSugarImplement();
                c1.setAddImpl(a1);
                c1.add();
            }else if(addsth.equals("Milk")){
                AddImplement a2 = new AddMilkImplement();
                c1.setAddImpl(a2);
                c1.add();
            }else{
                System.out.println("Sorry,we don't have this kind of things *_*");
            }
        }else if(choice.equals("MochaCoffee")){
            Coffee c1 = new MochaCoffee();
            if(addsth.equals("Sugar")){
                AddImplement a1 = new AddSugarImplement();
                c1.setAddImpl(a1);
                c1.add();
            }else if(addsth.equals("Milk")){
                AddImplement a2 = new AddMilkImplement();
                c1.setAddImpl(a2);
                c1.add();
            }else{
                System.out.println("Sorry,we don't have this kind of things *_*");
            }
        }else{
            System.out.println("We don't have this kind of Coffee*_*");
        }
        }
        
    }

}

模拟一个文件复制过程

Test.java

package test;

//系统成分类
abstract class attribute{
    int cnt;
//  public abstract void operation1();
    public abstract void output();
    public abstract void copy();
    public abstract void traverseDirectory();
}
//目录类
class Folder extends attribute{
    private attribute [] parts = new attribute[100];
    private String name;
    public int cnt = 0;
    private int index = 0;
    //构造函数部分
    Folder(){}
    Folder(String name){
        this.name = name;
    }
    //复制操作
//  public void operation1(){
//      System.out.println("复制文件:" + name);
//  }
    public void output(){
        System.out.println("+" + name);
    }
    public void add(Folder name){
        parts[index] = name;
        index++;
        name.cnt = this.cnt + 1;        
    }
    public void add(File name){
        parts[index] = name;
        index++;
        name.cnt = this.cnt + 1;
    }
    public boolean remove(attribute a){
        for(int i = 0 ; i < index ;i++){
            if(parts[i].equals(a)){
                parts[i] = null;
                return true;
            }
        }
        return false;
    }
    //有几个操作
    public int getchild(){
        return index;
    }
    //遍历操作
    public void traverseDirectory(){
        this.output();
        for(int i = 0 ; i < index; i++){    
            for(int k = 0 ; k <= this.cnt; k++){
                System.out.print("    ");
            }
            this.parts[i].traverseDirectory();
        }
    }
    public void copy(){
        System.out.println("复制文件:" + name);
        for(int j = 0 ; j < this.index ;j++){
            this.parts[j].copy();
        }
    }
}
//文件类
class File extends attribute{
    public String name;
    public int cnt = 0;
    File(String name){
        this.name = new String(name);
    }
    public void output(){
        System.out.println("-" + name);
    }
    public void copy(){
        System.out.println("复制文件:" + name);
    }
//  public void operation1(){
//      System.out.println("复制文件:" + name);
//  }
    public void traverseDirectory(){
        this.output();
    }
}

public class Test{
    public static StringBuffer st = new StringBuffer();
    public static void main(String[] args){
        Folder document = new Folder("我的资料");
        File book = new File("Java编程思想.pdf");
        Folder music = new Folder("我的音乐");
        File music1 = new File("你是我的眼.mp3");
        File music2 = new File("Without You.mp3");
        Folder picture = new Folder("我的照片");
        File pic1 = new File("我在美国白宫的照片");
        File pic2 = new File("我在新加坡的照片");
        File pic3 = new File("我在南极的照片");
        File pic4 = new File("我在南非的照片");
        File pic5 = new File("我与习大大的合影");
        
        document.add(book);
        document.add(music);
        music.add(music1);
        music.add(music2);
        picture.add(pic1);
        picture.add(pic2);
        picture.add(pic3);
        picture.add(pic4);
        picture.add(pic5);
        
        
        document.copy();
        System.out.println("-------------------------------");
        document.traverseDirectory();
        picture.traverseDirectory();
    }
}

Java实习二

标签:对象   部分   模拟   man   for   logs   cto   art   rac   

原文地址:http://www.cnblogs.com/pprp/p/7956465.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!