周报总结2

1.public class

做题时使用public class出了错,于是了解了一下用法。

     1.如果定义public class的类,要求此类名必须和Java源文件名保持一致。

     2.在同一个java文件中公共的类只能有一个(在同一个java文件中类名不能重复)。

2.Java中pow函数的使用

在Java中pow函数不能直接使用,要引用。

首先导入Math包,即   import static java.lang.Math.*

需要注意Java中pow函数是double类型的,如果要使用整数,需要转换类型。

import static java.lang.Math.*
int x = 3;
int y;
y = (int)pow(x,2)   //求x的平方

3.快乐数

快乐数 的定义:

  对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  如果这个过程 结果为 1,那么这个数就是快乐数。

题目:编写一个算法来判断一个数 n 是不是快乐数。

           如果 n 是 快乐数 就返回 true ;不是,则返回 false 。(来源LeetCode)

算法:快慢指针法

  设定一个快指针,一个慢指针,在每一步中,快指针前进2个节点,慢指针前进1个节点。      如果 n 是一个快乐数,即没有循环,那么快指针最终会比慢指针先到达数字 1。

  如果n不是一个快乐的数字,那么最终快指针和慢指针将在同一个数字上相遇。

代码如下:

class Solution {

     public int getNext(int n) {
        int totalSum = 0;
        while (n > 0) {
            int d = n % 10;
            n = n / 10;
            totalSum += d * d;
        }
        return totalSum;
    }

    public boolean isHappy(int n) {
        int slow = n;  
        int fast = getNext(n);   
        while (fast != 1 && slow != fast) {
            slow = getNext(slow);
            fast = getNext(getNext(fast));
        }
        return fast == 1;
    }
}

 4.Java中的两个函数

在做题时,新学会了两个方法的用法。

1、indexOf方法

      indexOf(String str): 返回指定字符str在字符串中(方法调用者)第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。

      indexOf(String str, int index): 返回从 index 位置开始查找指定字符str在字符串中第一次出现处的起始索引,如果此字符串中没有这样的字符,则返回 -1。

2.charAt方法

      java.lang.String.charAt() 方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,

 应用实例:

class Solution {
    public boolean halvesAreAlike(String s) {
        String a = s.substring(0, s.length() / 2);
        String b = s.substring(s.length() / 2);
        String h = "aeiouAEIOU";
        int sum1 = 0, sum2 = 0;
        for (int i = 0; i < a.length(); i++) {
            if (h.indexOf(a.charAt(i)) >= 0) {  //indexOf()返回指定字符在字符串中第一次出现处的起始索引,charAt()返回指定索引处的char值
                sum1++;
            }
        }
        for (int i = 0; i < b.length(); i++) {
            if (h.indexOf(b.charAt(i)) >= 0) {
                sum2++;
            }
        }
        return sum1 == sum2;
    }
}

5.写一个Java文件,熟悉类的定义、对象的创建、构造方法、方法重载、类的封装、继承、多态等

class Student {                  //定义学生类
    protected String name;
    protected int age;
    protected boolean sex;
    protected double score = -1;

    public Student(String name, int age, boolean sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }

    public Student(String name, int age, boolean sex, double score) {
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.score = score;
    }

    public String getName(){
        return name;
    }

    public void setName(String name) {
        if (name.length() < 2 || name.length() > 4) {
            System.out.println("抱歉,您输入的名字不合法。");
        }
        else {
            this.name = name;
            System.out.println(this.name);
        }
    }

    public int getAge(){
        return age;
    }

    public void setAge(int age) {
        if(age > 130 || age < 0){
            System.out.println("抱歉,您输入的年龄不合法。");
        }
        else {
            this.age = age;
            System.out.println(this.age);
        }
    }

    public boolean getSex(){
        return sex;
    }

    public void setSex(boolean sex) {
        this.sex = sex;
        if(sex){
            System.out.println("女生");
        }
        else System.out.println("男生");
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        if(score < 0 || score > 100){
            System.out.println("对不起,您输入的成绩不在合理范围内。");
        }
        else {
            this.score = score;
            System.out.println(this.score);
        }
    }

    public String toString() {
        return "姓名:"+name + "— 年龄:" + age + "— 性别:" + sex + "— 成绩:" + score;
    }

    public void show() {
        System.out.println(toString());
    }
}
public class StudentTest {               //定义学生测试类
    public static void main(String[] args){
        Student student1 = new Student("张三",18,false,85);
        Student student2 = new Student("李四",19,true);
        student1.show();

        student1.setName("王");
        student1.setAge(-18);
        student1.setScore(110);
        student1.setSex(false);

        System.out.println(student1.getName());
        System.out.println(student1.getSex());
        System.out.println(student1.getAge());
        System.out.println(student1.getScore());
    }
}
import java.util.Scanner;

public class XiyouStudent extends Student{         //定义西邮学生类
    String collegeName = "西安邮电大学";
    private int num;
    int[] score = {-1,-1,-1,-1,-1};

    public XiyouStudent(int num,String name, int age, boolean sex) {
        super(name, age, sex);
        this.name =name;
        this.age = age;
        this.sex = sex;
        this.num = num;
    }

    public String toString() {
        return "序号" + num + "-姓名:" + name + "— 年龄:" + age + "— 性别:" + sex;
    }

    public void show() {
        System.out.println(toString());
    }

    public int[] getScore2(int[] s){
        int i;
        for (i = 0;i < 5;i++) {
            if (s[i] < 0 || s[i] > 5) {
                System.out.println("抱歉,您输入的成绩不在合理范围内。");
                return s;
            }
            else score[i] = s[i];
        }
        return score;
    }

    public void Countpass(){
        int sum = 0;
        double aver;
        for(int i = 0;i < 5;i++){
            sum += score[i];
        }
        aver = sum / 5;
        if(aver >= 3){
            System.out.println("合格");
        }
        else System.out.println("不合格");
    }

    public static void main(String[] args){
        XiyouStudent student3 = new XiyouStudent(3,"王五",19,false);
        student3.show();
        System.out.println("请输入五次平均成绩:");
        Scanner in = new Scanner(System.in);
        int[] score = new int[5];
        for (int i = 0; i < 5; i++) {
            score[i] = in.nextInt();
        }
        student3.getScore2(score);
        student3.Countpass();
    }

}

在编写过程中遇到许多细节问题,认识到在学习完理论知识之后,一定要动手实践。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值