持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第6天,点击查看活动详情
一.对象和类
1.Java语言是面向对象的语言,核心是:
- 封装
- 继承
- 多态
2.类定义了同一类对象共有的属性和行为(相当于蓝图),创建实例的过程称为实例化。
3.UML
4.构造方法(constructor)是一种特殊的方法,调用它来构造具有不同初始数据值的对象。
5.变量表示存储数据的内存单元。
- 基本类型变量存储的是基本类型的值。
- 引用类型变量存储的是对象的引用。当变量未引用任何对象时,它是值为null。
6.时间:Data类
7.随机数:Random类
8.静态方法:用static修饰的,可以通过类名.方法名调用;静态变量和方法可以在不创建对象的情况下访问。
9.为了避免直接修改数据域,应该将数据域设为私有的;同时提供一个get方法返回私有数据域的值,一个set方法给私有数据域设置新值,这称为数据域封装。
- get方法称为getter(读取器)或访问器(accessor)
- set方法称为setter(设置器)或修改器(mutator)
10.要使一个类成为不可变的,必须满足:
- 所有数据域都是私有的
- 没有修改器方法
- 没有一个返回指向可变数据域的引用的访问器方法。
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
+ "抓老鼠");
}
}