Java面向对象程序设计[董小园版][习题代码答案]-第四章

要点回顾:

1、基本数据类型作方法的参数,单向值传递:实参-->形参。

2、引用型数据做方法参数(如数组、对象),实参传给形参的是地址,即数据的引用。

3、static修饰过的静态成员可以互相访问,其他成员不能访问static修饰的成员;static修饰过的方法可以在该类的外部用类名.方法名(实参)直接调用。

4、方法重载:1)参数的个数不同 2)相应位置参数的类型不同 [满足一个或全满足都可以实现重载]

5、构造方法:1)与类同名 2)没有任何返回类型 3)除此以外,在语法结构上与一般方法相同

6、封装:1)get成员变量名[例:getName()] 2)set成员变量名[例:setPassword()]

实验与训练:

1、

package train4_1;
import java.util.*;
public class Train4_1 {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入a的值:");
		int a=reader.nextInt();
		System.out.print("请输入b的值:");
		int b=reader.nextInt();
		int sum=add(a,b);
		System.out.println(a+"+"+b+"="+sum);
	}
	static int add(int op1,int op2) {
		return op1+op2;
	}
}

2、

package train4_2;
import java.util.*;
public class Train4_2 {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int n=reader.nextInt();
		abs(n);
	}
	public static void abs(int a) {
		if(a<0)
			a=-a;
		else
			a=a;
		System.out.println("绝对值为:"+a);
	}
}

3、

package train4_3;

import java.util.Scanner;

public class Train4_3 {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个整数:");
		int n=reader.nextInt();
		System.out.println("绝对值为:"+abs(n));
	}
	public static int abs(int a) {
		if(a<0)
			return -a;
		else
			return a;
	}

}

4、charAt(0)表示检索某一目录下的第一个字符,这里面就是输入的第一个字符

package train4_4;
import java.util.*;
public class Train4_4 {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入一个整数:");
		int n=reader.nextInt();
		System.out.print("请输入一个字符:");
		char ch=reader.next().charAt(0);
		draw(n,ch);
	}
	public static void draw(int n,char ch) {
		for(int i=0;i<n;i++) {
			System.out.print(ch);
		}
	}
}

5、

package train4_5;
import java.util.*;
public class Train4_5 {
//我的理解是给出一个正整数n,从0累加到n
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入一个正整数n:");
		int n=reader.nextInt();
		int sum=0;
		for(int i=1;i<=n;i++) {
			sum+=i;
		}
		System.out.println("累加和:"+sum);
	}

}

6、这个看着很长,其实逻辑段很少。

package train4_6;
import java.util.*;

class Initial{
	Scanner reader=new Scanner(System.in);
	int intarr[];
	double doublearr[];
	String stringarr[];//这三个定义同样可以省去
	
	void initArr(int iarr[]) {
		System.out.print("请输入整数型数组初始值:");
		 for(int i=0;i<iarr.length;i++) {
			 iarr[i]=reader.nextInt();
		 }
		 System.out.print("显示整数型数组所有元素:");
		 for(int i=0;i<iarr.length;i++) {
			 System.out.print(iarr[i]+" ");
		 }
	}
	
	void initArr(double darr[]) {
		System.out.print("请输入双精度型数组初始值:");
		 for(int i=0;i<darr.length;i++) {
			 darr[i]=reader.nextDouble();
		 }
		 System.out.print("显示双精度型数组所有元素:");
		 for(int i=0;i<darr.length;i++) {
			 System.out.print(darr[i]+" ");
		 }
	}
	
	void initArr(String sarr[]) {
		System.out.print("请输入字符串数组初始值:");
		 for(int i=0;i<sarr.length;i++) {
			 sarr[i]=reader.next();
		 }
		 System.out.print("显示字符串数组所有元素:");
		 for(int i=0;i<sarr.length;i++) {
			 System.out.print(sarr[i]+" ");
		 }
	}
}
public class Train4_6 {
	 
	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入数组长度n:");
		int n=reader.nextInt();
		int iarr[] = new int[n];
		Initial a=new Initial();
		a.initArr(iarr);
		
		System.out.println();
		double darr[] = new double[n];
		a.initArr(darr);
		
		System.out.println();
		String sarr[] = new String[n];
		a.initArr(sarr);
	}

}

7、

package train4_7;
import java.util.*;
class MathDemo{
	float fl;//定义单精度
	double dou;//定义双精度
	//这个比较简单,上面的定义其实可以省略(哈~)
	int round(float f) {
		return (int)f;//这一步也可以用Math.round();
	}
	
	int round(double d) {
		return (int)d;
	}
}
public class Train4_7 {

	public static void main(String[] args) {
		Scanner reader=new Scanner(System.in);
		System.out.print("请输入一个单精度数:");
		float a=reader.nextFloat();
		System.out.print("请输入一个双精度数:");
		double b=reader.nextDouble();
		MathDemo object=new MathDemo();
		System.out.println("单精度数四舍五入后的值为:"+object.round(a));
		System.out.println("双精度数四舍五入后的值为:"+object.round(b));
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值