初识面向对象
面向对象的思想
寻找一个对象来实现功能,注重完成功能的结果\
万物皆对象
类和对象
类
描述一类事物,是相同属性和功能的一类事物的描述
对象
具体的个体,实力对象
- 静态部分: 属性
- 动态部分: 动作,行为(属性)
设计一个类
//设计一个学生类
class Student{//描述学生这一类
//静态属性
String name;//姓名
int age;//年龄
//动态属性
void eat(){
System.out.println("吃东西");
}
void study(){
System.out.println("学习使我快乐");
}
}
对象的创建
new 类名(): 相当于新建的类的一个模板
给对象赋值
class Test{
public static void main(String[] args){
//新建对象
Student stu=new Student();
//赋值
stu.name="张伟";
System.out.println(stu,name);
stu.study();
}
}
class Student{
String name;
void study(){
System.out.println("学习使我快乐");
}
}
方法的调用
- 没有static修饰: 对象名.方法名+参数列表
- 有static修饰: 类名.方法名+参数列表
- 在同一个类中: 方法名+参数列表
构造方法
什么是构造方法
构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
构造方法就是一个代码块【就是一个结构 ,构造方法和 字段方法一样都是一个类中的成员之一】
构造方法也该存在于类的结构体中
一个类中可以存在多个构造方法,可以理解为方法的重载
语法
new 方法名()
- 构造方法名和类名一致
- 没有返回值类型
特点
每一个类中都至少有一个构造方法
如果没有看到(显示的),那么存在一个隐式的无参数的构造方法
如果一个类中有显示的构造方法,那么隐式的就不存在了
作用
- 通过调用构造方法可以创建对象
- 在创建对象的同时给对象的字段赋值【通过构造方法来完成】
匿名对象
什么是匿名对象
匿名对象,就是没有名字的对象[创建了一个对象而没有使用变量接收]
该对象存在于堆总处于游离状态:没有任何变量持有引用地址,指向他
但是匿名对象本质也是一个对象
匿名对象的使用
- 匿名对象只使用一次
- 可作为参数进行传递
对象的生命周期
- 开始: new创建对象时就开始了
- 结束:
- 当对象失去所有引用
- 对象被销毁(jvm垃圾回收机制)