System.out.println("小了");
}else{
System.out.println("猜中了");
break;
}
}
}
publicstaticvoidmain(String[]args){
Aa=newA();
a.cai();
}
}
【练习题】类的成员变量:
请定义一个交通工具(Vehicle)的类,其中有:
属性:
速度(speed),体积(size)等等
方法:
移动(move()),设置速度(setSpeed(intspeed)),加速speedUp(),减速speedDown()等等.
最后在测试类Vehicle中的main()中实例化一个交通工具对象,并通过方法给它初始化speed,size的值,并且通过打印出来。
另外,调用加速,减速的方法对速度进行改变。
publicclassVehicle{
intspeed;//速度
doublesize;//体积
//移动方法
publicvoidmove(){
System.out.println("正在以"+this.speed+"米/s移动了");
}
//setSpeed(intspeed)
publicvoidsetSpeed(intspeed){
this.speed=speed;
}
publicvoidsetSize(doublesize){
this.size=size;
}
publicvoidspeedUp(){
this.speed=this.speed+10;
System.out.println("加速");
}
publicvoidspeedDown(){
this.speed=this.speed-10;
System.out.println("正在减速");
}
publicstaticvoidmain(String[]args){
Vehiclevehicle=newVehicle();//实例化一个对象
vehicle.setSpeed(60);
vehicle.setSize(120.5);
vehicle.move();
vehicle.speedDown();
vehicle.move();
vehicle.speedUp();
vehicle.move();
}
}
【练习题】类的成员变量与方法、构造方法
在程序中,经常要对时间进行操作,但是并没有时间类型的数据。
那么,我们可以自己实现一个时间类,来满足程序中的需要。
定义名为MyTime的类,其中应有三个整型成员:
时(hour),分(minute),秒(second),为了保证数据的安全性,这三个成员变量应声明为私有。
为MyTime类定义构造方法,以方便创建对象时初始化成员变量。
再定义diaplay方法,用于将时间信息打印出来。
为MyTime类添加以下方法:
addSecond(intsec)
addMinute(intmin)
addHour(inthou)
subSecond(intsec)
subMinute(intmin)
subHour(inthou)
分别对时、分、秒进行加减运算。
publicclassMyTime{
privateinthour;//时
privateintminute;//分
privateintsecond;//秒
publicMyTime(inthour,intminute,intsecond){
this.hour=hour;
this.minute=minute;
this.second=second;
}
publicvoiddisplay(){
//超出标准时间范围
if(this.second>=60){
this.minute=this.minute+this.second/60;
this.second=this.second%60;
}
if(this.minute>=60){
this.hour=this.hour+this.minute/60;
this.minute=this.minute%60;
}
if(this.hour>=24){
this.hour=this.hour%24;
}
//出现负数的情况
if(this.second<0){
if(this.second%60==0){
this.minute=this.minute+this.second/60;
}else{
this.minute=this.minute+this.second/60-1;;
this.second=this.second%60+60;
}
}
if(this.minute<0){
if(this.minute%60==0){
this.hour=this.hour+this.minute/60;
}else{
this.hour=this.hour+this.minute/60-1;
this.minute=this.minute%60+60;
}
}
if(this.hour<0){
this.hour=24+this.hour%24;
}
System.out.println("时间是:
"+this.hour+"时,"+this.minute+"分,"+this.second+"秒");
}
publicvoidaddSecond(intsec){
this.second=this.second+sec;
if(this.second>60){
this.minute=this.minute+1;
this.second=this.second-60;
}
}
publicvoidaddMinute(intmin){
this.minute=this.minute+min;
if(this.minute>60){
this.hour=this.hour+1;
this.minute=this.minute-60;
}
}
publicvoidaddHour(inthou){
this.hour=this.hour+hou;
if(this.hour>24){
this.hour=this.hour-24;
}
}
publicvoidsubSecond(intsec){
this.second=this.second-sec;
if(this.second<0){
this.minute--;
this.second=this.second+60;
}
}
publicvoidsubMinute(intmin){
this.minute=this.minute-min;
if(this.minute<0){
this.hour--;
this.minute=this.minute+60;
}
}
publicvoidsubHour(inthou){
this.hour=this.hour-hou;
if(this.hour<0){
this.hour=this.hour+24;
}
}
publicstaticvoidmain(String[]args){
MyTimemt=newMyTime(23,59,59);
mt.addSecond
(1);
mt.display();
mt.subSecond(86401);
mt.display();
mt.addMinute(65);
mt.display();
}
}
【练习题】构造方法
编写Java程序,模拟简单的计算器。
定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。
编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。
在main方法中创建Number类的对象,调用各个方法,并显示计算结果。
publicclassNumber{
privateintn1;
privateintn2;
publicNumber(intn1,intn2){
this.n1=n1;
this.n2=n2;
}
//再为该类定义加(addition)、减(subtration)、
//乘(multiplication)、除(division)
publicvoidaddition(){
System.out.println("相加结果:
"+(this.n1+this.n2));
}
publicvoidsubtration(){
System.out.println("相减结果:
"+(this.n1-this.n2));
}
publicvoidmultiplication(){
System.out.println("相乘结果:
"+(this.n1*this.n2));
}
publicvoiddivision(){
System.out.println("相除结果:
"+(this.n1/this.n2));
}
publicstaticvoidmain(String[]args){
Numbernum=newNumber(400,42);
num.addition();
num.subtration();
num.multiplication();
num.division();
}
}
【练习题】构造方法:
编写Java程序,用于显示人的姓名和年龄。
定义一个人类(Person),该类中应该有两个私有属性,姓名(name)和年龄(age)。
定义构造方法,用来初始化数据成员。
再定义显示(display)方法,将姓名和年龄打印出来。
在main方法中创建人类的实例,然后将信息显示。
publicclassPerson{
privateStringname;
privateintage;
publicPerson(Stringname,intage){
this.name=name;
this.age=age;
}
publicvoiddisplay(){
System.out.println("姓名"+name+"年龄"+age);
}
publicstaticvoidmain(String[]args){
Personm=newPerson("张三",24);
m.display();
}
}
【练习题】get方法和set方法
定义一个类,该类有一个私有成员变量,通过构造方法将其进行赋初值,并提供该成员的getXXX()和setXXX()方法
提示:
假设有privateStringname;则有
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnthis.name;
}
【练习题】构造方法与重载
为“无名的粉”写一个类:
classWuMingFen要求:
1.有三个属性:
面码:
StringtheMa粉的分量(两):
intquantity
是否带汤:
booleanlikeSoup
2.写一个构造方法,以便于简化初始化过程,如:
WuMingFenf1=newWuMingFen("牛肉",3,true);
3.重载构造方法,使得初始化过程可以多样化:
WuMingFenf2=newWuMingFen("牛肉",2);
4.如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的?
WuMingFenf3=newWuMingFen();
5.写一个普通方法:
check(),用于查看粉是否符合要求。
即:
将对象的三个属性打印在控制台上。
publicclassWuMingFen{
StringtheMa;
intquantity;
booleanlikeSoup;
publicWuMingFen(){
}
//对所有属性进行初始化的构造器
publicWuMingFen(StringtheMa,intquantity,booleanlikeSoup){
this.theMa=theMa;
this.quantity=quantity;
this.likeSoup=likeSoup;
}
publicWuMingFen(StringtheMa,intquantity){
this.theMa=theMa;
this.quantity=quantity;
}
publicvoidcheck(){
if(likeSoup){
System.out.println(theMa+quantity+"两,带汤");
}else{
System.out.println(theMa+quantity+"两,不带汤");
}
}
publicstaticvoidmain(String[]args){
WuMingFenf1=newWuMingFen("牛肉",3,true);
WuMingFenf2=newWuMingFen("牛肉",2);
WuMingFenf3=newWuMingFen();
f3.theMa="酸辣面";
f3.quantity=3;
f3.likeSoup=true;
f1.check();
f2.check();
f3.check();
}
}