包与接口以及常用工具类的使用
(一) 创建并使用自定义包
源代码如下:
packageMypackage; //声明存放类的包
importjava.util.*; //引用 java.util 包
public classKY6_1 {
privateint year,month,day;
publicstatic void main(String[] args){}
public KY6_1 (int y,int m,int d) {
year = y;
month= (((m>=1) & (m<=12)) ? m : 1);
day =(((d>=1) & (d<=31)) ? d : 1);
}
publicstatic int thisyear() {
returnCalendar.getInstance().get(Calendar.YEAR);//返回当年的年份
}
public intyear() {
returnyear;//返回年份
}
publicString toString(){
return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
}
}
编写 KY6_2.java 程序:
importMypackage.KY6_1; //引用 Mypackage 包中的KY6_1 类
public class KY6_2
{
private String name;
private KY6_1 birth;
publicstatic void main(String args[])
{
KY6_2 a = new KY6_2("张驰",1990,1,11);
a.output();
}
public KY6_2 (String n1, int y, int m, intd)
{ //初始化变量与对象
name = n1;
birth = new KY6_1(y, m, d);
}
public int age() //计算年龄
{
return birth.year() -KY6_1.thisyear(); //返回当前年与出生年的差即年龄
}
public void output()
{
System.out.println("姓名 : "+name);
System.out.println("出生日期: "+birth.toString());
System.out.println("今年年龄 : "+age());
}
}
(3)运行上面的代码结果是:
有问题。returnbirth.year() - KY6_1.thisyear(), 这条语句中数刚好相反,是以前的年份减现在的应该换过来。
(二) 使用接口技术
接口:
public interfacejiafa {
doubleadd(double a,double b);
}
public interfacejianfa {
doublejianfa(double a,double b);
}
主函数:
public classKY6_3 implements jiafa,jianfa{
publicdouble jianfa(double a, double b) {
returna-b;
}
publicdouble add(double a, double b) {
returna+b;
}
public static void main(String args[]) {
KY6_3 a =new KY6_3();
System.out.println("加法的结果是:"+a.add(50,60));
System.out.println("减法的结果是:"+a.jianfa(80,20));
}
}
代码运行的结果是:
(三) Math类的使用
源代码如下:
public class KY6_4 {
public static void main(String args[]) {
System.out.println (Math.abs (-5.8));
System.out.println (Math.ceil (3.2));
System.out.println (Math.floor (3.8));
System.out.println (Math.round (3.8));
System.out.println (Math.round (3.2));
System.out.println (Math.min (3, 2));
System.out.println (Math.max (Math.PI, 4));
System.out.println (Math.log (7.0));
System.out.println (Math.pow (7,2));
System.out.println (Math.exp (0.4));
System.out.println ("e is:"+ Math.E);
System.out.println ("π is:"+Math.PI);
System.out.println(Math.random());
}
}
程序执行的结果:
(四) String类与StringBuffer类的使用
源代码如下:
public classKY6_4 {
public staticvoid main(String args[]) {
String s=newString("This is an demo of the String method.");
System.out.println("Length: "+s.length());
System.out.println("SubString: "+s.substring(11,15));
StringBuffer sf=new StringBuffer("HelloWorld!");
sf.append(" Hello Java!");
sf.insert(12," And");
System.out.println(sf);
System.out.println(sf.charAt(0));
sf.setCharAt(0,'h');
System.out.println(sf.charAt(0));
System.out.println(sf);
}
}
程序执行的结果是:
思考题:
1. 算术运算应该使用什么类?
Math类(数学类)
2. Java语言中如何表示字符串?
字符串可以是字母数字和特殊的字符表示,在java里面则要用双引号才能在java里面表示出来,否则就会有错误。