JAVA學習筆記(六)
阿新 • • 發佈:2019-01-24
類的建立
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+"天前了");
}
}