『百日百题 · 基础篇』备战面试,坚持刷题 第七话——封装与继承!

本专栏『百日百题』长期更新,一起加入本刷题计划,一起成长吧!


前言

怎么样刷题?

有些同学喜欢上来就是干,上来就是终极难度的题目,觉得自己只要做出最难的,其它的就迎刃而解了。这种急于求成的思想要不得。

算法训练是一个系统工程,需要循序渐进,太过于急功近利,反而容易因做不出难题而产生挫败感,带来反效果。

记得我有一个同事就做了次类似的事情。我当时刚听说有牛客网,就想上去试试,他上去后就挑了一道困难里面还属于比较难的题目,结果想了大半天也没做出来,搞到自己特别沮丧。

你会发现这种做法效率很低,那道题目就算被做出来了,也不代表就可以解出其它的题目。

合理的做法是循序渐进。

我的建议是先刷一遍基础语法题,打好基础在进一步刷算法题,这样首先对这个语言的基础语法和常用API是绝对没有问题的,在后面刷算法题的时候也肯定会事半功倍的!

本专栏文章即将带你从基础语法到高级算法,循序渐进持续练习,加入刷题计划一起加油吧!


对于刷题这里我推荐牛客网如果你对相应语言的基础语法已经比较自信了那你也可以刷算法题,这里牛客网对算法题的难度分类也是很棒的,有入门题,面试必刷题,面试高频题等等。如果基础比较差那么也不用担心,牛客网上面也有基础语法题来帮助你更好地学习基础。

为了方便刷题我直接把牛客网的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!

传送门:刷题入口

在这里插入图片描述

专栏文章即将带你从基础语法到高级算法,循序渐进持续练习,加入刷题计划一起加油吧!


JAVA19 修改Data类的定义【封装】

题目:

在这里插入图片描述

题解:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Data data = new Data(x, y);
            System.out.println(data.getX() + data.getY());
        }
    }

}

class Data {
    private int x;
    private int y;

    public Data(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

}

JAVA20 验证年龄【封装】

题目:

在这里插入图片描述

题解:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Person p = new Person();
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int age = scanner.nextInt();
            p.setAge(age);
            System.out.println(p.getAge());
        }
    }

}

class Person {

  private int age;
    //write your code here......
       public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >200 ) {
            this.age = 200;
        } else if (age >= 0 && age <= 200) {
            this.age = age;
        } else if(age <0) {
            this.age = 0;
        }
    }
  } 



JAVA21 补全构造方法【继承】

题目:

在这里插入图片描述

题解:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            int z = scanner.nextInt();
            Sub sub = new Sub(x, y, z);
            System.out.println(sub.calculate());
        }
    }

}

class Base {
    private int x;
    private int y;

    public Base(int x, int y) { //父类构造方法
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }
}

class Sub extends Base {
    private int z;

    public Sub(int x, int y, int z) { //子类构造方法
        super(x, y); //调用父类构造方法
        this.z = z;
    }

    public int getZ() {
        return z;
    }

    public int calculate() { //子类计算三者乘积
        return super.getX() * super.getY() * this.getZ();
    }
}

JAVA22 重写计算逻辑【继承】

题目:

在这里插入图片描述

题解:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Sub sub = new Sub(x, y);
            sub.calculate();
        }
    }

}

class Base {
    private int x;
    private int y;

    public Base(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public int getY() {
        return y;
    }

    public void calculate() {
        System.out.println(getX() * getY());
    }
}

class Sub extends Base {
    public Sub(int x,int y){
        super(x,y);
    }
    public void calculate() {
        if(getY()==0){
             System.out.println("Error");
        }else{
        System.out.println(getX() / getY());
        }
    }

结语

为了方便刷题我直接把刷题网站的链接放在下面,大家点击蓝色字体就可以直接进行跳转刷题了!

传送门:刷题神器

刷题这件事,大家一定要认真起来,不可懈怠!

日积月累,方成大器!

相关文章

学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习...
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面...
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生...
Can’t connect to local MySQL server through socket \'/v...
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 ...
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服...