什么是对象?
世界万物只要是实体的都是对象,对象是具体的,能够看得见,摸得着
什么是类型?
类型可以说是分类,具有某些共同属性,具有相同行为的集合,类型是抽象的
在Java中class就是类型
总的来说,类是对象的抽象,对象是类的实体,对象有属性(静态),方法(动态)
属性指对象具有的各种特征 每个对象的每个属性都拥有特定值
方法指对象执行的操作
创建对象
Phone p=new Phone();
使用对象
引用对象成员:使用 . 进行操作
引用类的属性 对象名.属性 引用类的方法 对象名.方法名()
定义方法
public 返回值类型 方法名(){
//方法主体
}
void指没有返回值 其他的需要在方法主体return
调用方法必须有对象才能调用该对象的方法
如果是有返回值的必须在调用的时候有变量去接收
方法构造
带参方法构造的注意事项:
1.方法定义处的参数叫形式参数,方法调用处传的值叫实际参数
2.带参方法,参数个数可以有多个,多个参数之间用逗号隔开
3.带参方法,参数名字可以随意取,符合变量命名的规则
4.形参和实参名字可以不一样,但是数据类型要一致,个数要一样,顺序要一样
5.方法没有参数和方法有没有返回值是两码事,毫无关系
构造方法:
构造方法 创建对象使用
没有返回值类型
访问修饰符 构造方法名(需要与类名一致)(){
//初始化代码
}
自定义构造方法 系统则不提供
系统默认给了一个无参构造方法,如果说使用自定义构造方法,系统则不提供,因此在自定义构造方法时,要自建一个无参的构造方法防止出错
调用有参构造,能够在创建对象时对属性进行赋值,将对象初始化
基本类型和引用类型再方法传参时的区别
调用这个calc1相当于在栈内存中存储一个int类型的num 把n的值赋给num变化的是num的值 calc2也是在栈内存中存储一个student类型的student 把stu的值赋给student stu存储的是地址 到方法中根据age(类似索引的功能)在堆内存中找到对应数据进行修改
这边需要理解哪些数据存储在栈内存 哪些存储在堆内存, 以及要明白各个变量存储的是地址还是实际的值
空指针错误
在对象为数组时,要注意需要数组内的元素不为null时才能使用 . 进行操作
所以要先将数组内的数new成对象
this关键字
this特指本对象,在形参和属性重名时用this.来表示是这个类的属性
this();调用的是无参构造 必须写在构造方法的第一句
this(name);-------调用形参是name的方法
方法重载
一个类中
方法名相同(方便调用),参数项不同(有区别,个数,类型,顺序),与返回值和访问修饰符无关