Java程序设计基础——课本例题

课本例题

第三章

1.数据类型的自动转换App3_1

源代码:
//filename:App3_1.java
public class App3_1
{
    public static void main (String[] args)
    {
        int a = 155;
        float b = 21.0f;
        System.out.println("a = " + a + ",b = "+ b);
        System.out.println("a/b = " + (a/b));
    }
}
编译运行:

App3_1

2.整型与浮点数据类型的转换App3_2

源代码:
//filename:App3_2.java  整数与浮点数的类型转换
public class App3_2
{
    public static void main(String[] args)
    {
        int a = 155;
        int b = 9;
        float g,h;
        System.out.println("a = " + a + ",b = " + b);  // 输出a,b的值
        g = a/b;  //将a除以b的结果放在g中
        System.out.println("a/b = " + g + "\n");  //输出g的值
        System.out.println("a = " + a + ",b = " + b);  // 输出a,b的值
        h = (float)a/b;  //先将a强制转换成float类型后再参加运算
        System.out.println("a/b = " + h);  //输出h的值
        System.out.println("(int)h = " + (int)h);  //将变量h强制转换成int型

    }    
}

编译运行:

App3_2

3.从键盘输入数据App3_3和App3_3_1

App3_3源代码:
//filename:App3_3.java  由键盘输入字符串
import java.io.*;  //加载java.io类库里的所有类
public class App3_3
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader buf;
        String str;
        buf = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入字符串:");  //输出字符串
        str = buf.readLine();  //将输入的文字指定给字符串变量str存放
        System.out.println("您输入的字符串是:" + str);  //输出字符串
    }
}
App3_3编译运行:

App3_3

App3_3_1源代码:
//filename:App3_3_1.java  由键盘输入字符串
import java.io.*;  //加载java.io类库里的所有类
public class App3_3_1
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader buf;
        char str;
        buf = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入字符串:");  //输出字符串
        str = (char)buf.read();  //将输入的文字指定给字符串变量str存放
        System.out.println("您输入的字符串是:" + str);  //输出字符串
    }
}
App3_3_1编译运行:

App3_3_1

4.从键盘输入数字,然后将其转换成数值型数据App3_4

源代码:
//filename:App3_4.java  //由键盘输入整数
import java.io.*;
public class App3_4
{
    public static void main(String[] args) throws IOException
    {
        float num;
        String str;
        BufferedReader buf;
        buf = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("请输入一个实数:");
        str = buf.readLine();  //将输入的文字指定给字符串变量str存放
        num = Float.parseFloat(str);  //将str转换成float类型后赋给num
        System.out.println("您输入的数为:" + num);
    }
}
编译运行:

App3_4

5.从键盘输入多个数据App3_5

源程序:
//filename:App3_5.java  由键盘输入多个数据
import java.io.*;
public class App3_5
{
    public static void main(String[] args) throws IOException
    {
        int num1,num2;
        String str1,str2;
        InputStreamReader in;
        in = new InputStreamReader(System.in);
        BufferedReader buf;
        buf = new BufferedReader(in);
        System.out.print("请输入一个数:");
        str1 = buf.readLine();  //将输入的内容赋值给字符串变量str1
        num1 = Integer.parseInt(str1);  //将str1转成int类型后赋给num1
        System.out.print("请输入第二个数:");
        str2 = buf.readLine();  //将输入的内容赋值给字符串变量str2
        num2 = Integer.parseInt(str2);   //将str2转成int类型后赋给num2
        System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
    }
}
编译运行:

App3_5

6.利用Scanner类从键盘输入多个数据App3_6

源代码:
//filename:App3_6.java  由键盘输入多个数据
import java.util.*;  //加载java.util类库里的所有类
public class App3_6
{
    public static void main(String[] args)
    {
        int num1;
        double num2;
        Scanner reader = new Scanner(System.in);
        System.out.print("请输入第一个数:");
        num1 = reader.nextInt();  //将输入内容作为int型数据赋值给变量num1
        System.out.print("请输入第二个数:");
        num2 = reader.nextDouble();  //将输入内容作为double型数据赋值给变量num2
        System.out.println(num1 + "*" + num2 + "=" + ((float)num1 * num2));
    }
}
编译运行:

App3_6

7.利用Scanner类,使用next()和nextLine()方法接收从键盘输入字符串型数据App3_7

App3_7源程序:
//filename:App3_7.java  //由键盘输入多个数据
import java.util.*;  //加载java.util类库里的所有类
public class App3_7
{
    public static void main(String[] args)
    {
        String s1,s2;
        Scanner reader = new Scanner(System.in);
        System.out.print("请输入第一个数据:");
        s1 = reader.nextLine();  //将输入的内容作为字符串型数据赋值给变量s1
        System.out.print("请输入第二个数据:");
        s2 = reader.next();  //按Enter键后next()方法将回车符和换行符去掉
        System.out.println("输入的是" + s1 + "和" + s2);
    }
}
App3_7编译运行:

App3_7

App3_7_1源程序:
//filename:App3_7_1.java  //由键盘输入多个数据
import java.util.*;  //加载java.util类库里的所有类
public class App3_7_1
{
    public static void main(String[] args)
    {
        String s1,s2;
        Scanner reader = new Scanner(System.in);
        System.out.print("请输入第一个数据:");
        s1 = reader.next();  //将输入的内容作为字符串型数据赋值给变量s1
        System.out.print("请输入第二个数据:");
        s2 = reader.nextLine();  //按Enter键后next()方法将回车符和换行符去掉
        System.out.println("输入的是" + s1 + "和" + s2);
    }
}
App3_7_1编译运行:

App3_7_1

8.关系运算符和逻辑运算符的使用App3_8

源代码:
//filename:App3_8.java  关系运算符和逻辑运算符的使用
public class App3_8
{
    public static void main(String[] args)
    {
        int a = 25,b = 7;
        boolean x = a < b;  //x = false
        System.out.println("a < b=" + x);
        int e = 3;
        boolean y = a/e>5;  //y = true
        System.out.println("x ^ y=" + (x ^ y));
        if(b < 0 & e!= 0) System.out.println("b/0 = " + b/0);
        else System.out.println("a%e = " + a % e);
        int f = 0;
        if(f!= 0 && a/f>5) System.out.println("a/f = " + a/f);
        else System.out.println("f = " + f);
    }
}
编译运行:

App3_8

第六章

1.定义一个圆柱体类Cylinder1,并创建相应的对象,然后计算圆柱体的底面积与体积App6_1

源代码:
//filename:App6_1.java  圆柱体类Cylinder1
class Cylinder1  //定义Cylinder1类
{
    double radius;  //定义成员变量radius
    int height;  //定义成员变量height
    double pi = 3.14;
    void area()  //定义无返回值的方法area(),用来计算圆柱体的底面积
    {
        System.out.println("底面积 = " + pi * radius * radius);
    }
    double volume()  //定义返回值为double型的方法volume(),计算体积
    {
        return (pi * radius * radius) * height;
    }
}
public class App6_1  //定义公共类
{
    public static void main(String[] args)  //程序执行的起点
    {
        Cylinder1 volu;
        volu = new Cylinder1();  //创建新的对象
        volu.radius = 2.8;  //赋值圆柱volu的底半径
        volu.height = 5;  //赋值圆柱的高
        System.out.println("底圆半径 = " + volu.radius);  //输出底圆半径
        System.out.println("圆柱的高 = " + volu.height);  //输出圆柱的高
        System.out.println("圆柱");
        volu.area();  //输出圆柱底面积
        System.out.println("圆柱体体积 = " + volu.volume());  //输出圆柱体积
    }
}
编译运行:

App6_1

2.同时创建多个圆柱体类Cylinder2的对象,并修改其中一个对象的成员变量pi的值App6_2

源代码:
//filename:App6_2.java  圆柱体类Cylinder2的成员在内存中的分配关系
class Cylinder2  //定义Cylinder类
{
    double radius;
    int height;
    double pi = 3.14;
    void area()
    {
        System.out.println("底面积 = " + pi * radius * radius);
    }
    double volume()
    {
        return (pi * radius * radius) * height;
    }
}
public class App6_2 // 定义公共类
{
    public static void main(String[] args)
    {
        Cylinder2 volu1,volu2;  //声明指向对象的变量volu1和volu2
        volu1 = new Cylinder2();  //创建圆柱对象1:volu1
        volu2 = new Cylinder2();  //创建圆柱对象2:volu2
        volu1.radius = volu2.radius = 2.5;
        volu2.pi = 3;  //修改volu2的pi值
        System.out.println("圆柱1底半径 = " + volu1.radius);
        System.out.println("圆柱2底半径 = " + volu2.radius);
        System.out.println("圆柱1的pi值 = " + volu1.pi);
        System.out.println("圆柱2的pi值 = " + volu2.pi);
        System.out.println("圆柱1");
        volu1.area();
        System.out.println("圆柱2");
        volu2.area();
    }
}
编译运行:

App6_2

3.以圆柱体类Cylinder3为例来介绍在类内部调用自己的方法App6_3

源代码:
//package Appm_n_k;
//filename:App6_3.java  在类内部调用方法
class Cylinder3 // 定义Cylinder类
{
    double radius;
    int height;
    double pi = 3.14;
    double area()  //定义返回值为double型的方法area(),计算底面积
    {
        return pi * radius * radius;
    }
    double volume()  //定义返回值为double型的方法volume(),计算体积
    {
        return area() * height;  //在类内调用area()方法
    }
}
public class App6_3  //定义公共类
{
    public static void main(String[] args)
    {
        Cylinder3 volu;
        volu = new Cylinder3();  //创建新的对象
        volu.radius = 2.8;  //赋值圆柱volu的底半径
        volu.height = 5;  //赋值圆柱的高
        System.out.println("底圆半径 = " + volu.radius);
        System.out.println("圆柱的高 = " + volu.height);
        System.out.println("圆柱");
        System.out.println("底面积 = " + volu.area());
        System.out.println("圆柱体体积 = " + volu.volume());
    }
}
编译运行:

App6_3

4.以圆柱体类Cylinder4为例来介绍用变量调用方法App6_4

源代码:
//package Appm_n_k;
//filename:App6_4.java  以一般变量为参数的方法调用
class Cylinder4
{
    double radius;
    int height;
    double pi;
    void setCylinder(double r,int h,double p)  //具有三个参数的方法
    {
        pi = p;
        radius = r;
        height = h;
    }
    double area()
    {
        return pi * radius * radius;
    }
    double volume()
    {
        return area() * height;
    }
}
public class App6_4  //定义公共类
{
    public static void main(String[] args)
    {
        Cylinder4 volu = new Cylinder4();
        volu.setCylinder(2.5, 5, 3.14);  //调用并传递参数到setCylinder()方法
        System.out.println("底圆半径 = " + volu.radius);
        System.out.println("圆柱的高 = " + volu.height);
        System.out.println("圆周率pi = " + volu.pi);
        System.out.println("圆柱");
        System.out.println("底面积 = " + volu.area());
        System.out.println("圆柱体体积 = " + volu.volume());
    }
}
编译运行:

App6_4

5.以一维数组为参数的方法调用,求若干数的最小值App6_5

源代码:
//package Appm_n_k;
//filename:App6_5.java  以数组为参数的方法调用
public class App6_5  //定义主类
{
    public static void main(String[] args)
    {
        int[] a = {8, 3, 7, 88, 9, 23};  //定义一维数组a
        LeastNumb minNumber = new LeastNumb();
        minNumber.least(a);  //将一维数组a传入least()方法
    }
}
class LeastNumb  //定义另一个类
{
    public void least(int[] array)  //参数array接收一维整型数组
    {
        int temp = array[0];
        for(int i = 1;i < array.length;i++)
            if(temp > array[i])
                temp = array[i];
        System.out.println("最小的数为:" + temp);
    }
}
编译运行:

App6_5

6.将一个矩阵转置后输出App6_6

源代码:
//package Appm_n_k;
//filename:App6_6.java  返回值是数组类型的方法
public class App6_6
{
    public static void main(String[] args)
    {
        int[][] a = {{1, 2, 3},{4, 5, 6}, {7, 8, 9}};  //定义二维数组
        int[][] b = new int[3][3];
        Trans pose = new Trans();  //创建Trans类的对象pose
        b = pose.transpose(a);  //用数组a调用方法,返回值赋给数组b
        for(int i = 0;i < b.length;i++)  //输出数组的内容
        {
            for(int j = 0;j < b[i].length;j++)
                System.out.print(b[i][j] + " ");
        System.out.print("\n");  //每输出数组的一行后换行
        }
    }
}
class Trans
{
    int temp;
    int[][] transpose(int[][] array)  //返回值和参数均为二维整型数组的方法
    {
        for(int i = 0;i < array.length;i++)  //将矩阵转置
            for(int j = i + 1;j < array[i].length;j++)
            {
                temp = array[i][j];
                array[i][j] = array[j][i];  //将二维数组的行与列互换
                array[j][i] = temp;
            }
        return array;  //返回二维数组
    }
}
编译运行:

App6_6

7.定义具有一个固定参数和可变参数的方法,然后分别传入不同个数的参数,并输出App6_7

源代码:
//package Appm_n_k;
//filename:App6_7.java  可变参数的应用
public class App6_7
{
    public static void display(int x,String...arg)  //x是固定参数,arg是接收可变参数的数组名
    {
        System.out.print(x + " ");  //输出固定参数
        for(int i = 0;i < arg.length;i++)  //利用for循环输出可变参数的每个值
            System.out.print(arg[i] + " ");
        System.out.print("\n");
    }
    public static void main(String[] args) {
        display(5);  //没有可变参数,所有只传递固定参数
        display(6, "a", "b");  //传递2个可变参数
        display(7, "AA", "BB", "CC", "DD");  //传递4个可变参数
    }
}
编译运行:

App6_7

第八章

9.运算符instanceof及getName()、getSuperclass()方法的使用App8_9

源代码:
//package Appm_n_k;
//filename:App8_9.java
/*public*/class Person  //定义Person类
{
    static int count = 0;  //定义静态变量count
    protected String name;
    protected int age;
    public Person(String n1,int a1)  //构造方法
    {
        name = n1;
        age = a1;
        this.count++;  //调用父类的静态变量
    }
    public String toString()
    {
        return this.name + "," + this.age;
    }
    public void display()
    {
        System.out.println("本类名 = " + this.getClass().getName() +";");
        System.out.println("父类名 = " + this.getClass().getSuperclass().getName());
        System.out.print("Person.count = " + this.count + " ");
        System.out.print("Student.count = " + Student.count + " ");
        Object obj = this;
        if(obj instanceof Student)  //判断对象属于哪个类
            System.out.println(obj.toString() + "是Student类对象。");
        else if(obj instanceof Person)
            System.out.println(obj.toString() + "是Person类对象。");
    }
}

class Student extends Person  //子类Student继承自父类Person,且是主类但不是public类
{
    static int count = 0;  //隐藏了父类的count
    protected String dept;
    protected Student(String n1,int a1,String d1)
    {
        super(n1,a1);  //调用父类的构造方法
        dept = d1;
        this.count++;  //调用子类的静态变量
    }
    public String toString()  //覆盖父类的同名方法
    {
        return super.toString() + "," + dept;  //调用父类的同名方法
    }
    public void display()
    {
        super.display();  //调用父类的方法
        System.out.print("super.count = " + super.count);  //引用父类的变量
        System.out.println(" ;this.count = " + this.count);
    }
}
public class App8_9
{
    public static void main(String[] args)
    {
        Person per = new Person("王永涛",23);
        per.display();
        Student stu = new Student("张小三", 22, "计算机系");
        stu.display();    
    }
}
编译运行:

App8_9

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值