早上来了之后继续昨天准备看到五子棋游戏,产生了以下的疑惑。
- 什么是线程?
- 什么是fiveOval?
新的一天,继续学习!
面向对象的语言
面向对象的三大核心特性
- 继承性
使用这种层次形的分类方式,是为了将多个类的通用属性和方法提取出来,放在它们的父类中,然后只需要在子类中各自定义自己独有的属性和方法,并以继承的形式在父类中获取它们的通用属性和方法即可。
- 封装行:保护
- 多态性:多态性允许一个接口被多个同类使用
类的属性
在 Java 中类的成员变量定义了类的属性。例如,一个学生类中一般需要有姓名、性别和年龄等属性,这时就需要定义姓名、性别和年龄 3 个属性。声明成员变量的语法如下:[public|protected|private][static][final]<type><variable_name>
各参数的含义如下。
public、protected、private:用于表示成员变量的访问权限。
static:表示该成员变量为类变量,也称为静态变量。
final:表示将该成员变量声明为常量,其值无法更改。
type:表示变量的类型。
variable_name:表示变量名称。
成员方法的声明和调用
形参是定义方法时参数列表中出现的参数,实参是调用方法时为方法传递的参数
Java this关键字详解
构造方法
构造方法是一种特殊的方法,它是一个与类同名的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
构造方法主要有无参构造方法和有参构造方法两种
public class MyClass {
private int m; // 定义私有变量
MyClass() {
// 定义无参的构造方法
m = 0;
}
MyClass(int m) {
// 定义有参的构造方法
this.m = m;
}
}
final修饰符
使用 final 修饰的引用类型变量不能被重新赋值,但可以改变引用类型变量所引用对象的内容。
递归算法
递归算法也是老生常谈的东西了。
Super关键字
super 关键字的功能:
在子类的构造方法中显式的调用父类构造方法
访问父类的成员方法和变量。
super 关键字的用法:
super.父类属性名:调用父类中的属性
super.父类方法名:调用父类中的方法
super():调用父类的无参构造方法
super(参数):调用父类的有参构造方法
this 关键字的用法:
this.属性名:表示当前对象的属性
this.方法名(参数):表示调用当前对象的方法
Java对象类型转换:向上转型和向下转型
public static void main(String[] args) {
Animal animal = new Cat();
Cat cat = (Cat) animal; // 向下转型
System.out.println(animal.name); // 输出Animal类的name变量
System.out.println(animal.staticName); // 输出Animal类的staticName变量
animal.eat(); // 输出Cat类的eat()方法
animal.staticEat(); // 输出Animal类的staticEat()方法
System.out.println(cat.str); // 调用Cat类的str变量
cat.eatMethod(); // 调用Cat类的eatMethod()方法
((Cat)animal).str = ""; // 编译成功
((Cat)animal).eatMethod(); // 编译成功
Cat cat = (Cat)animal; // 编译成功,将Animal对象类型强制转换为Cat对象类型
}
}
重载与重写
看得好累,看点Spring框架入门。
实现封装的具体步骤如下:
修改属性的可见性来限制对属性的访问,一般设为 private。
为每个属性创建一对赋值(setter)方法和取值(getter)方法,一般设为 public,用于属性的读写。
在赋值和取值方法中,加入属性控制语句(对属性值的合法性进行判断)。
Spring IoC容器
Spring 中使用的对象都由 IoC 容器管理,不需要我们手动使用 new 运算符创建对象。由 IoC 容器管理的对象称为 Spring Bean,Spring Bean 就是 Java 对象,和使用 new 运算符创建的对象没有区别。
Spring 通过读取 XML 或 Java 注解中的信息来获取哪些对象需要实例化。
Spring 提供 2 种不同类型的 IoC 容器,即 BeanFactory 和 ApplicationContext 容器。