1. 程式人生 > >JAVA學習筆記(六)

JAVA學習筆記(六)

類的建立

import java.util.*;

/*
 * 建立類-Person
 *  從具體每個人中,抽取共性的描述資訊-屬性(靜態)
 *      name,age,gender,height,weight,ID,birthday
 *  從具體每個人中,抽取共性的動作資訊-方法(動態)
 *      eat,sing,dance,sleep,talk,smile,count
 *  類中主要包含:靜態的屬性和動態的方法
 */
public class Person
{
    //靜態的屬性
    String name;
    int age;
    char gender;
    int
height; float weight; String ID; Date birthday; InputStream is; Socket s; //動態的方法 public void eat() { System.out.println("eat"); } public int count(int x, int y) { return x + y; } }

student類

public class Student
{
    //屬性
    int sno;
    String name;
    int
age; char gender; //方法 public void study() { System.out.println("study"); } public int add(int x, int y) { return x + y; } //建構函式 public Student(){} public Student(int sno, String name, int age, char gender) { this.sno = sno; this
.name = name; this.age = age; this.gender = gender; } }
public class Test
{
    public static void main(String[] args)
    {
        //通過物件,使用類中的方法,屬性時,通過.呼叫
        Student s1 = new Student();
        int result = s1.add(10, 20);
        System.out.println(result);

        /*Student s2 = new Student(1, "zhangsan", 25, '男');
        System.out.println(s2.sno);
        System.out.println(s2.name);
        System.out.println(s2.age);
        System.out.println(s2.gender);
        s2.add(10, 20);

        Student s3 = new Student(2, "lisi", 20, '女');

        s3 = s1;*/
    }
}

類的成員變數

成員變數

/*
 * 類的成員變數
    請定義一個交通工具(Vehicle)的類,包含屬性:速度speed、體積size,方法:設定速度setSpeed(int speed)、
    移動move()、加速speedUp()、減速speedDown()。在測試類中例項化一個交通工具物件,通過方法初始化speed和size的值,
    並輸出相關資訊,呼叫加速、減速方法對速度進行改變。
 */
public class Vehicle
{
    int speed;
    int size;

    public Vehicle()
    {

    }
    public Vehicle(int speed, int size)
    {
        this.setSpeed(speed);
        this.setSize(size);
    }
    public void setSpeed(int speed)
    {
        this.speed = speed;
    }
    public void move()
    {

    }
    public void speedUp(int i)
    {
        speed += i;
    }
    public void speedDown(int i)
    {
        speed -= i;
    }
    public void setSize(int size)
    {
        this.size = size;
    }
}
public class Test
{
    public static void main(String[] args)
    {
        Vehicle v = new Vehicle(150, 100);
        System.out.print("車車的速度為" + v.speed + " 體積為" + v.size);
        v.speedUp(5);
        System.out.print("\n開始加速。。。\n現在的速度為" + v.speed);
        v.speedDown(5);
        System.out.print("\n開始減速。。。\n現在的速度為" + v.speed);
    }
}

類的構造方法

/*
 * 構造方法
    編寫Java程式,模擬簡單的計算器。定義名為Calculator的類,包含整數變數n1和n2,應宣告為私有。
    編寫構造方法,可以初始化n1和n2,為該類定義加addition、減subtration、乘multiplication、
    除division等公有成員方法,分別對兩個成員變數執行加、減、乘、除的運算。
    在main方法中建立Calculator類的物件,呼叫各個方法並顯示計算結果。
 */
public class Calculator
{
    private int n1;
    private int n2;

    public Calculator()
    {

    }
    //初始化成員變數
    public Calculator(int n1, int n2)
    {
        this.setN1(n1);
        this.setN2(n2);
    }
    //getter and setter 方法
    public int getN1()
    {
        return n1;
    }
    public void setN1(int n1)
    {
        this.n1 = n1;
    }
    public int getN2()
    {
        return n2;
    }
    public void setN2(int n2)
    {
        this.n2 = n2;
    }
    // '+'
    public int addition(int n1, int n2)
    {
        return n1 + n2;
    }
    // '-'
    public int subtration(int n1, int n2)
    {
        return n1 - n2;
    }
    // '/'
    public int multiplication(int n1, int n2)
    {
        return n1 / n2;
    }
    // '*'
    public int division(int n1, int n2)
    {
        return n1 * n2;
    }

}
public class Test
{

    public static void main(String[] args)
    {
        Calculator cal = new Calculator(45, 15);
        int n1 = cal.getN1();
        int n2 = cal.getN2();
        System.out.println(n1 + "+" + n2 + "=" + cal.addition(n1, n2));
        System.out.println(n1 + "-" + n2 + "=" + cal.subtration(n1, n2));
        System.out.println(n1 + "/" + n2 + "=" + cal.multiplication(n1, n2));
        System.out.println(n1 + "*" + n2 + "=" + cal.division(n1, n2));
    }

}

類的綜合例項

/*
 * 類的成員變數與方法、構造方法
 * 在程式中,經常要對時間進行操作。我們可以自己實現一個時間類,來滿足程式中的需要。
 *  定義名為MyTime的類,其中有三個整型變數:時hour、分minute、秒second,
 *  為了保證資料的安全性,將這三個成員變數宣告為私有。為MyTime類定義構造方法,
 *  以方便建立物件時初始化成員變數。再定義diaplay方法,用於將時間資訊打印出來。
 *  為MyTime類新增以下方法addHour(int hou)、addMinute(int min)、
 *  addSecond(int sec)、subHour(int hou) 、subMinute(int min)、
 *  subSecond(int sec)分別對時、分、秒進行加減運算。
 */
public class Mytime
{
    private int hour;
    private int minute;
    int second;
    /**
     * @param hour
     * @param minute
     * @param second
     */


    public Mytime(int hour, int minute, int second)
    {
        this.hour = hour;
        this.minute = minute;
        this.second = second;
    }
    public int getHour()
    {
        return hour;
    }
    public void setHour(int hour)
    {
        this.hour = hour;
    }
    public int getMinute()
    {
        return minute;
    }
    public void setMinute(int minute)
    {
        this.minute = minute;
    }
    public int getSecond()
    {
        return second;
    }
    public void setSecond(int second)
    {
        this.second = second;
    }
    /**
     * 
     */
    public Mytime()
    {
    }

    /*
     * 為MyTime類新增以下方法addHour(int hou)、addMinute(int min)、
 *  addSecond(int sec)、subHour(int hou) 、subMinute(int min)、
 *  subSecond(int sec)分別對時、分、秒進行加減運算。
     */
    //增加秒
    public int addSecond(int sec)
    {
        int day=0;
        day=addMinute((sec+this.second)/60);
        this.second=(sec+this.second)%60;
        return day;
    }
    //增加分鐘
    public int addMinute(int min)
    {
        int day=0;
        day=addHour((min+this.minute)/60);
        this.minute=(min+this.minute)%60;
        return day;
    }
    //增加小時
    public int addHour(int hou)
    {
        int day=(hou+this.hour)/24;
        this.hour=(hou+this.hour)%24;
        return day;
    }
    //減少秒
    public int subSecond(int sec)
    {
        int day=0;
        this.second=this.second-sec%60; //秒數相減
        if(this.second<0) //減後秒數小於0的話
        {
            this.second+=60;  //分鐘減一 秒數為正
            day=subMinute(1);  //這減去的一分是否會減去一天
        }
        day+=subHour(sec/60);  //每60分鐘時鐘+1
        return day;
    }
    //減少分
    public int subMinute(int min)
    {
        int day=0;
        this.minute=this.minute-min%60;
        if(this.minute<0)
        {
            this.minute+=60;
            day=subHour(1);
        }
        day+=subHour(min/60);

        return day;
    }
    //減少小時
    public int subHour(int hou)
    {
        int day=0;
        if(hou<=this.hour) //當減少的時間小於當前小時時
        {
            this.hour-=hou;
            return 0;        //天數不前移
        }
        this.hour=this.hour-hou%24;   //得到一個-24到24之間的‘時’
        if(this.hour<0)    //這個‘時’小於0的話就向後移一天,’時‘變為正數
        {
            this.hour+=24;
            day++;
        }
        day+=hou/24;
        return day;
    }
    public void show()
    {
        System.out.println(this.hour+"點"+this.minute+"分"+this.second+"秒");
    }
}
public class Test
{
    public static void main(String[] args)
    {
        Mytime mt=new Mytime(21,42,03);
        int day;
        int hour=3;
        int minute=17;
        int second=86457;
        mt.show();
        System.out.println("********************");

        day=mt.addHour(hour);
        System.out.print(hour+"小時後是");
        mt.show();
        System.out.println("這是第"+day+"天后了");

        day=mt.addMinute(minute);
        mt.show();
        System.out.println(minute+"分鐘後是第"+day+"天后了");
        day=mt.addSecond(second);
        mt.show();
        System.out.println(second+"秒後是第"+day+"天后了");

        System.out.println("********************");
        day=mt.subSecond(2);
        mt.show();
        System.out.println("是第"+day+"天前了");
        day=mt.subMinute(720);
        mt.show();
        System.out.println("是第"+day+"天前了");
        day=mt.subHour(35);
        mt.show();
        System.out.println("是第"+day+"天前了");
    }
}