第四天
java2 实用教程第五版 耿祥义 张跃平编著
第四章代码
代码1:课本P59
class XiYouJiRenWu {
float height,weight;
String head,ear;
void speak(String s) {
System.out.println(s);
}
}
public class Example4_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
XiYouJiRenWu ZhuBaJie; //声明对象
ZhuBaJie = new XiYouJiRenWu(); //为对象分配变量(使用new和默认的构造方法)
Zhubajie.speak("hahaha");
}
}
运行结果:
/**************
hahaha
***************/
代码2:课本P59
package java课本项目;
class Point {
int x,y;
Point(int a,int b){
x=a;
y=b;
}
}
public class Example4_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Point p1,p2; //声明对象p1和p2
p1=new Point(10,10); //为对象p1分配变量(使用new和类中的构造方法)
p2=new Point(23,35); //为对象p2分配变量(使用new和类中的构造方法)
}
}
//此代码运行完成后只是实例化了Point对象p1和p2,并没有其他输出结果
代码3:课本P62
package java课本项目;
class xiyouji {
float height,weight;
String head,ear;
void speak(String s) {
head="歪着头";
System.out.println(s);
}
}
public class Example4_3 {
public static void main(String args[]) {
xiyouji zhubajie,sunwukong; //声明对象
zhubajie = new xiyouji(); //为对象分配变量
sunwukong = new xiyouji();
zhubajie.height=1.80f; //对象给自己的变量赋值
zhubajie.head="猪头";
zhubajie.ear="一对猪耳朵";
sunwukong.height=1.62f;
sunwukong.weight=1000f;
sunwukong.head="铜头铁臂";
System.out.println("zhubajie的身高:"+zhubajie.height);
System.out.println("zhubajie的头:"+zhubajie.head);
System.out.println("sunwukong的体重:"+sunwukong.weight);
System.out.println("sunwukong的头:"+sunwukong.head);
zhubajie.speak("俺老猪想娶个媳妇儿!"); //对象调用方法
System.out.println("zhubajie现在的头:"+zhubajie.head);
sunwukong.speak("吃俺老孙一棒!"); //对象调用方法
System.out.println("sunwukong现在的头:"+sunwukong.head);
}
}
运行结果:
/************************************************
zhubajie的身高:1.8
zhubajie的头:猪头
sunwukong的体重:1000.0
sunwukong的头:铜头铁臂
俺老猪想娶个媳妇儿!
zhubajie现在的头:歪着头
吃俺老孙一棒!
sunwukong现在的头:歪着头
*************************************************/
代码4:课本P65
package java课本项目;
class Pont{
int x,y;
void setXY(int m,int n) {
x=m;
y=n;
}
}
public class Example4_4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Pont p1,p2;
p1= new Pont();
p2= new Pont();
System.out.println("p1的引用:"+p1);
System.out.println("p2的引用:"+p2);
p1.setXY(1111,2222);
p2.setXY(-100, -200);
System.out.println("p1的x,y坐标:"+p1.x+","+p1.y);
System.out.println("p2的x,y坐标:"+p2.x+","+p2.y);
p1=p2;
System.out.println("将p2的引用赋值给p1后:");
System.out.println("p1的引用:"+p1);
System.out.println("p2的引用:"+p2);
System.out.println("p1的x,y坐标:"+p1.x+","+p1.y);
System.out.println("p2的x,y坐标:"+p2.x+","+p2.y);
}
}
运行结果:
/*********************************************
p1的引用:java课本项目.Pont@15db9742
p2的引用:java课本项目.Pont@6d06d69c
p1的x,y坐标:1111,2222
p2的x,y坐标:-100,-200
将p2的引用赋值给p1后:
p1的引用:java课本项目.Pont@6d06d69c
p2的引用:java课本项目.Pont@6d06d69c
p1的x,y坐标:-100,-200
p2的x,y坐标:-100,-200
***********************************************/
代码5:课本P67
package java课本项目;
class Rect {
double width; //矩形的宽
double height; //矩形的高
double getArea() {
double area= width*height;
return area;
}
}
class Lader {
double above; //梯形的上底
double bottom; //梯形的下底
double height; //梯形的高
double getArea() {
return (above+bottom)*height/2;
}
}
public class Example4_5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Rect ractangle=new Rect();
ractangle.width=109.87;
ractangle.height=25.18;
double area= ractangle.getArea();
System.out.println("矩形的面积:"+area);
Lader lader=new Lader();
lader.above=10.798;
lader.bottom=156.65;
lader.height=18.12;
area=lader.getArea();
System.out.println("梯形的面积:"+area);
}
}
运行结果:
/*********************************************
矩形的面积:2766.5266
梯形的面积:1517.0788800000003
*********************************************/
代码6:课本P68
package java课本项目;
class Computer {
int add(int x,int y) {
return x+y;
}
}
public class Example4_6 {
public static void main(String args[]) {
Computer com= new Computer();
int m=100;
int n=200;
int result=com.add(m, n); //将m,n的值“传值”给参数x,y
System.out.println(result);
result=com.add(120+m, n*10+8); //将表达式120+m和n*10+8的值传给参数x,y
System.out.println(result);
}
}
运行结果:
/*****************************
300
2228
******************************/
代码7:课本P70
package java课本项目;
class Battery {
int electricityAmount;
Battery(int amount) {
electricityAmount=amount;
}
}
class Radio {
void openRadio(Battery battery) {
battery.electricityAmount=battery.electricityAmount-10;
}
}
public class Example4_7 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Battery nanfu= new Battery(100); //创建电池对象
System.out.println("南孚电池的电量为:"+nanfu.electricityAmount);
Radio radio=new Radio(); //创建收音机对象
System.out.println("收音机开始使用南孚电池");
radio.openRadio(nanfu); //打开收音机
System.out.println("目前南孚电池的储电量为:"+nanfu.electricityAmount);
}
}
运行结果:
/*********************************************
南孚电池的电量为:100
收音机开始使用南孚电池
目前南孚电池的储电量为:90
**********************************************/
代码8:课本P72
package java课本项目;
class CCircle {
double radius,area;
void setRadius(double r) {
radius=r;
}
double getRadius() {
return radius;
}
double getArea() {
area=3.14*radius*radius;
return area;
}
}
class Circular {
CCircle bottom;
double height;
void setBottom(CCircle c) {
bottom=c;
}
void setHeight(double h) {
height=h;
}
double getVolme() {
if(bottom == null) {
return -1;
}
else
return bottom.getArea ()*height/3.0;
}
double getBottomRadius() {
return bottom.getRadius();
}
public void setBottomRadius(double r) {
bottom.setRadius(r);
}
}
public class Example4_8 {
public static void main(String[] args) {
// TODO Auto-generated method stub
CCircle circle=new CCircle(); //代码1
circle.setRadius(10); //代码2
Circular circular=new Circular(); //代码3
System.out.println("circle的引用"+circle);
System.out.println("圆锥bottom的引用"+circular.bottom);
circular.setHeight(5);
circular.setBottom(circle);; //代码4
System.out.println("circle的引用"+circle);
System.out.println("圆锥bottom的引用"+circular.bottom);
System.out.println("圆锥的体积:"+circular.getVolme());
System.out.println("修改circle的半径,bottom的半径同样变化");
circle.setRadius(20); //代码5
System.out.println("bottom的半径:"+circular.getBottomRadius());
System.out.println("重新创建circle,circle的引用将发生变化");
circle=new CCircle(); //重新创建circle,代码6
System.out.println("circle的引用"+circle);
System.out.println("但是不影响circular的bottom的引用");
System.out.println("圆锥的bottom的引用:"+circular.bottom);
}
}
运行结果:
/************************************************************
circle的引用java课本项目.Circle@15db9742
圆锥bottom的引用null
circle的引用java课本项目.Circle@15db9742
圆锥bottom的引用java课本项目.Circle@15db9742
圆锥的体积:523.3333333333334
修改circle的半径,bottom的半径同样变化
bottom的半径:20.0
重新创建circle,circle的引用将发生变化
circle的引用java课本项目.Circle@6d06d69c
但是不影响circular的bottom的引用
圆锥的bottom的引用:java课本项目.Circle@15db9742
*************************************************************/
代码9:课本P76
package java课本项目;
class SIM {
long number;
SIM(long number) {
this.number=number;
}
long getNumber() {
return number;
}
}
class MObileTelephone {
SIM sim;
void setSTM(SIM card) {
sim = card;
}
long lookNumber() {
return sim.getNumber();
}
}
public class Example4_9 {
public static void main(String[] args) {
// TODO Auto-generated method stub
SIM simOne = new SIM(15191550042L);
MObileTelephone mobile =new MObileTelephone();
mobile.setSTM(simOne);
System.out.println("手机号码:"+mobile.lookNumber());
SIM simTwo = new SIM(13629875546L);
mobile.setSTM(simTwo); //更换手机卡
System.out.println("手机号码:"+mobile.lookNumber());
}
}
运行结果:
/************************
手机号码:15191559942
手机号码:13629875546
***************************/
代码10:课本P78
package java课本项目;
class Laderr {
double 上底,高; //实例变量
static double 下底; //类变量
void 设置上底(double a) {
上底 = a;
}
void 设置下底(double b) {
下底=b;
}
double 获取上底() {
return 上底;
}
double 获取下底() {
return 下底;
}
}
public class Example4_10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Laderr.下底=100; //Laderr的字节码被加载到内存,通过类名操作类变量
Laderr laderrOne=new Laderr();
Laderr laderrTwo=new Laderr();
laderrOne.设置上底(28);
laderrTwo.设置下底(66);
System.out.println("laderOne的上底:"+laderrOne.获取上底());
System.out.println("laderOne的下底:"+laderrOne.获取下底());
System.out.println("laderTwo的上底:"+laderrTwo.获取上底());
System.out.println("laderTwo的下底:"+laderrTwo.获取下底());
}
}
运行结果:
/************************
laderOne的上底:28.0
laderOne的下底:66.0
laderTwo的上底:0.0
laderTwo的下底:66.0
*************************/
由于第四章代码比较多,无法一次更新,下次继续更新!