类与对象

学习-Java类和对象之类的声明之学生类的定义
/**
 * 任务:定义一个 Student 学生公开类,该类具有学号 id(int),年龄 age(int),grade(int) 等属性;
 * 它们所具有的行为有学习 study(),考试 examination(),讲话 tell(),它们都无返回值和传入的参数。
 * 类名为:Student
 */
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/

// 第一步:创建一个名为 Student 的公开类
public class Student {
    public int id;
    public int age;
    public int grade;

    public Student() {
    }
    public Student(int id, int age, int grade) {
        this.id = id;
        this.age = age;
        this.grade = grade;
    }

    public void study(){
        System.out.println("学号为"+this.id+"的学生正在学习。");
    }
    public void examination(){
        System.out.println(this.grade+"年级正在考试。");
    }
    public void tell(){
        System.out.println("正在讲话的是一个"+this.age+"岁的学生。");
    }
    public static void main(String[] args) {
         Student student=new Student();
        student.study();
        student.examination();
        student.tell();

    }

}

/********** End **********/

练习-Java类和对象之对象引用之模拟手机功能
/**
 * 任务:实现手机的基本功能。
 * 类名为:Phone
 */

public class Phone {

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

/********** Begin **********/

    // 定义五个变量,分别表示品牌、型号、价格、操作系统和内存
    public String brand;
    public String num;
    public double price;

    public String OS;

    public int memory;

    // 无参构造

    public Phone() {

    }

    // 有参构造
    public Phone(String brand, String  num, double price, String OS, int memory) {
        this.brand = brand;
        this.num = num;
        this.price = price;
        this.OS = OS;
        this.memory = memory;
    }


    /**
     * 定义一个方法,该方法实现查询手机信息的方法,无返回值
     * 输出格式:品牌:xx
     *           型号:xx
     *           操作系统:xx
     *           价格:xx
     *           内存:xx
     * 中间用换行符隔开
     */
    public void query(){
        System.out.println("品牌:"+this.brand+"\n"+"型号:"+this.num+"\n"
        +"操作系统:"+this.OS+"\n"+"价格:"+this.price+"\n"+"内存:"+this.memory);

    }

    /**
     * 定义一个方法,该方法实现打电话的功能,无返回值,
     * 携带一个int型参数,其中1,2,3分别表示爸爸、妈妈、姐姐的号,
     * 输出格式  如果参数为1,换行输出:正在给爸爸打电话
     * 如果出现其它情况,换行输出:你所拨打的电话为空号
     */
    public void call(int x){
        if(x==1){
            System.out.println("正在给爸爸打电话");
        } else if (x==2) {
            System.out.println("正在给妈妈打电话");
        }else if(x==3){
            System.out.println("正在给姐姐打电话");
        }else{
            System.out.println("你搜拨打的电话为空号");
        }
    }

    /**
     * 定义一个方法,该方法实现听音乐的功能,无返回值
     * 携带一个参数,其表示为歌曲名
     * 不换行输出格式:正在播放xx
     */
    public void listen(String name){
        System.out.print("正在播放"+name);
    }


    // 定义主方法
    public static void main(String[] args) {
        // 通过无参构造创建手机对象
        Phone phone=new Phone();
        // 设置手机品牌为小米,型号为小米9,操作系统为,价格为2599,运行内存为8
        phone.brand="小米";
        phone.num="小米9";
        phone.OS="Android 9";
        phone.price=2599;
        phone.memory=8;
        // 查询手机信息
        phone.query();
        // 给妈妈拨打电话
        phone.call(2);
        // 播放浮夸这首歌
        phone.listen("浮夸");
    }

/********** End **********/

}
练习-Java类和对象之this关键字
/**
 * 任务:定义一个完整的学生类,该类定义了学生的基本信息。
 * 类名为:Student
 */

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/

// 创建一个名为 Student 的公开类

public class Student {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    // 该方法实现输出学生信息的功能。 输出格式:学生姓名:xx,年龄:xx
   public void info() {
        System.out.print("学生姓名:"+this.name+",年龄:"+this.age);
    }
}

/********** End **********/
学习-Java类和对象之访问限制
/**
 * 任务:实现图书类,该类包含了图书的基本属性和信息。
 * 类名为:Book
 */

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
public class Book {
    // 定义四个私有变量
    // 图书名称(bookName String)
    private String bookName;
    
    // 图书单价(price double)
    private double price;
    // 图书库存(total int)
    private int total;
    // 图书id(bookId int)
    private int bookId;

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }

    public int getBookId() {
        return bookId;
    }

    public void setBookId(int bookId) {
        this.bookId = bookId;
    }
}
/********** End **********/

数组与方法

倒转数组
package step1;

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        int [] a = new int[num];
        for (int i=0;i<a.length;i++){
            a[i] = input.nextInt();
        }
        reverse(a);
        for (int i=0;i<a.length;i++){
            System.out.print(String.format("%d ",a[i]));
        }
    }

    //请在指定位置填写代码。
    /********* Begin *********/
    public static int[] reverse(int[] a){
        for (int i = 0; i <(a.length)/2; i++) {
            int tmp=a[i];
            a[i]=a[a.length-1-i];
            a[a.length-1-i]=tmp;
        }
        return a;
    }
    /********* End *********/
}
消除重复
package step2;
 
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        int [] a = new int[num];
        for (int i=0;i<a.length;i++){
            a[i] = input.nextInt();
        }
        int [] r = getSet(a);
        for (int i=0;i<r.length;i++){
            System.out.print(String.format("%d ",r[i]));
        }
    }
 
    //请在指定位置填写代码。
    /********* Begin *********/
    public static int[] getSet(int[] a){
        int[] array=new int[a.length];  //用来接收去重后的a[]数组
        array[0]=a[0];  //存第一个元素
        int flag=0,n=1;  //flag标记是否该数字已经出现
        for (int i=0;i<a.length;i++){
            for(int j=0;j<n;j++){  //遍历已经保存的数字
                if(array[j]==a[i]){
                    flag=1;  //该数字已出现
                    break;
                }
            }
            if(flag==0){
                array[n++]=a[i];  //该数字未出现,保存
            }
            flag=0;
        }
        int[] ans=new int[n];  //因为array[]的个数不符合要求
        for(int i=0;i<n;i++)
            ans[i]=array[i];
        return ans;
    }
    /********* End *********/
    
}
大整数加法
package step3;
 
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String n1 = input.nextLine();
        String n2 = input.nextLine();
        String result = add(n1,n2);
        System.out.println(result);
        
    }
 
    //请在指定位置填写代码。
    /********* Begin *********/
    public static String add(String a,String b){
        int n=a.length()>b.length()?a.length():b.length();  //长度
        int aa[]=new int[n+1],bb[]=new int[n+1];

        for(int i=0;i<a.length();i++){
            aa[i]=a.charAt(a.length()-1-i)-'0';
        }
        for(int i=0;i<b.length();i++){
            bb[i]=b.charAt(b.length()-1-i)-'0';
        }
        int temp,ans[]=new int[n+1];
        for(int i=0;i<n;i++){
            temp=aa[i]+bb[i]+ans[i];
            if(temp>9){
                ans[i+1]=1;
                ans[i]=temp-10;
            }
            else{
                ans[i]=temp;
            }
        }
        
        StringBuilder res = new StringBuilder();
         
        boolean findFirst = false;
        for (int i=ans.length-1; i>=0; i--) {
            if(!findFirst){
                if(ans[i] == 0){				
                    continue;
                }
                findFirst = true;
            }
            res.append(ans[i]);
        }
        return res.toString();
    }
 
    /********* End *********/
}
05-05 07:37