什么是对象?
对java来讲:“万物皆对象”
对象-操作单位:任何内容都可以被认定为独立的操作单位
对程序来讲:是计算机内存中的一块存储空间,用来存放生活中的对象内容
对象之间的关系
is a :对象与对象间的继承
has a :一个对象包含另一个对象
use a :一个对象使用另一个对象
类的补充
用来描述同一批具有相同特征和行为的对象
描述该批对象都具有哪些共有的特征和行为
约束相同对象应该具有哪些特征和行为
测试类:拥有主函数,可以直接运行
描述型的类:描述对象,不能拥有主函数,无法直接运行类
类和对象之间的关系
- 类是对象的模板
- 对象是类的实例
- 一个模板可以拥有多个相同或相似的实例(必须先存在模板,才能通过模板构建实例)
类的组成
属性
用来描述特征。也称全局变量、成员变量、成员属性等
语法:
//只声明
数据类型 属性名;
//声明的同时赋初始值
数据类型 属性名=值;
example:
public class Student {
//属性
String name;
int age;
double score;
// String className = "204班";
}
书写位置:类的内部,方法的外部,通常写在类的最上方。
属性和局部变量的区别:
局部变量 | 属性 | |
---|---|---|
位置 | 方法内部 | 方法外部 |
作用范围 | 从定义行开始,至直属代码块结束 | 整个类 |
命名冲突 | 同一作用范围,不可重名 | 可以与局部变量重名,但局部变量的优先级更高 |
默认值 | 没有 | 有 |
方法
用来描述行为。也称为成员方法、实例方法。
语法:
访问修饰符 返回值类型 方法名(形参列表){
//操作语句
}
example:
public class Student {
//属性
String name;
int age;
double score;
String className = "204班";
//行为方法
//学习
public void study(){
System.out.println("学生在学习");
}
}
位置:类的内部,其他方法外,与属性平级
创建对象
类名 对象名=new 类名();
对象访问
1. 访问属性
2. 访问方法
//属性访问
取值:对象名.属性名
赋值:对象名.属性名=值;
//对象访问
对象名.方法名(实参)
构造方法
作用为创建对象,创建对象必须借助构造方法。
无参构造:
访问修饰符 类名(){
}
有参构造:
访问修饰符 类名(数据类型 参数名1,数据类型 参数名2,..){
属性名1=参数1;
属性名2=参数2;
..
}
语法
- 没有返回值类型
- 方法名必须与类名保持一致
- 访问修饰符通常为public
使用特点
1. 创建对象语法解析
//无参创建对象
类名 对象名=new 类名();
//有参创建对象
类名 对象名=new 类名(实参列表);
左侧类名:声明创建的为哪个类的对象
右侧类名():调用构造方法
2. 只能通过new关键字调用
3. 有参和无参创建对象的区别
无参构造只创建对象,有参构造会在创建对象完成后为属性赋初始值
4. 若类中没有写构造方法,会默认存在一个无参构造方法,当类中手动定义构造后,默认的无参构造会失效
5. 无参构造可以存在0-1个,有参构造可以存在0-n个
6. 根据实参列表决定执行的是那个构造
方法重载
作用
允许多个功能相同或相似的方法命名一致,简化程序员定义与调用时的负担
规则
- 在同一个类中,方法名相同、参数列表不同(数据类型、顺序、数量)
- 与访问修饰符、返回值类型、异常没有关系
this关键字
代表当前对象
this .
指明或调用本类的属性或方法
指明本类属性:this.属性名
调用本类方法:this.方法名(实参) 不常用
this()
调用本类其他构造的内容
使用特点:
1. 根据实参列表决定执行的是哪个构造的内容
2. 必须写在构造方法有效戴拿第一行
3. 无法递归调用
重点掌握
-
对象间的关系
-
类和对象间的关系
-
属性和局部变量的区别
-
对象的创建和访问
-
构造方法的语法及使用特点
-
方法重载的规则
-
this.属性名的使用