java知识点复习(1)

70 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情

一.对象和类

1.Java语言是面向对象的语言,核心是:

  • 封装
  • 继承
  • 多态

2.类定义了同一类对象共有的属性和行为(相当于蓝图),创建实例的过程称为实例化。

3.UML image.png

4.构造方法(constructor)是一种特殊的方法,调用它来构造具有不同初始数据值的对象。

5.变量表示存储数据的内存单元。

  • 基本类型变量存储的是基本类型的值。
  • 引用类型变量存储的是对象的引用。当变量未引用任何对象时,它是值为null。

6.时间:Data类

7.随机数:Random类

8.静态方法:用static修饰的,可以通过类名.方法名调用;静态变量和方法可以在不创建对象的情况下访问。

9.为了避免直接修改数据域,应该将数据域设为私有的;同时提供一个get方法返回私有数据域的值,一个set方法给私有数据域设置新值,这称为数据域封装。

  • get方法称为getter(读取器)或访问器(accessor)
  • set方法称为setter(设置器)或修改器(mutator)

10.要使一个类成为不可变的,必须满足:

  1. 所有数据域都是私有的
  2. 没有修改器方法
  3. 没有一个返回指向可变数据域的引用的访问器方法。

11.关键字this是指向调用对象本身的引用名

二.代码

abstract class animal {   //animal抽象类
    int count = 0;
    static int n = 0;
    public static String name;
    public static String call;

    public animal() {
        this.name = name;
        count++;
    }
    
    abstract public void getCall();
    public static void  setCall(String call){
        animal.call = call;
    }
    public static void shout() {

    public void setN(int n) {
        this.n = n;
    }

    public int getCount() {
        return count;
    }
}

方法接口,可以通过调用实现这个接口

public interface catchm {
    public void Catchm();
}

具体实现的动物:

public class cat extends animal implements catchm{
    static int count = 0;
    static int n ;
    static String name;
    static Integer num;
    public cat(String name) {
        this.name = name;
        count ++;
    }
    public static void main(String[] args) {
        num = 0;
        name = "旺仔";
        Scanner input = new Scanner(System.in);
        System.out.println("想让猫叫几声?");
        n = input.nextInt();
        for (int i = 1;i < n; i++){
            if (i <= 10){
                shout();
            }
            else {
                System.out.println("最多只能叫10声");
            }
        }
        num();
    }

    @Override
    public void getCall() {
        call = "喵";
    }

    public static void shout() {
        System.out.println("我的名字叫 " + name + " 喵");
    }
    public static void num() {
        num ++ ;  //根据调用次数来决定你是第几只猫猫
        System.out.println("我是第" + num + "只猫猫");
    }

    public int getCount() {
        return count;   //数数猫
    }

    public void setN(int n ) {
        this.n = n;   //数数叫声
    }
    @Override
    public void Catchm() {
        System.out.println(name
                + "抓老鼠");
    }

}