一、类和对象是什么
类:是共同特征的描述(设计图);对象:是真实存在的具体实例。
类是创建对象的模板;对象是类的分身。
二、如何创建类,以及如何得到对象?
public class 类名{
1、成员变量(代表属性的,一般是名词)
2、成员方法(代表行为的,一般是动词)
3、构造器(构造方法)
4、代码块
5、内部类
}
public class Phone {
String brand;
double price;
public void call(){
}
public void playGame(){
}
}
类名 对象名 = new 类名();
public class test {
public static void main(String[] args) {
Phone p = new Phone();
}
}
三、拿到对象后能做什么?
通过以下方式进行调用
○对象.成员变量;
○对象.成员方法(..)
四、构造器【或称构造方法】
含义
构造器和构造方法实际上是同一个概念。在Java中,构造器(Constructor)也被称为构造方法或构造函数,它们用于在创建对象时初始化对象。
具体来说,构造器的主要特点和作用是进行初始化,为对象的成员变量设置初始值。这些初始化操作在对象创建时只执行一次。
基本格式:
public class Student{
权限修饰符 类名(参数){
方法体;
}
}
public class Phone {
String brand;
double price;
//空参构造器
public Phone(){
}
//带参构造器
public Phone(String brand, double price) {
this.brand = brand;
this.price = price;
}
}
特点
- 构造方法名要和类名相同,大小写也要一样
- 没有返回值类型,没有void
- 没有具体的返回值
什么时候执行构造器?
创建对象的时候由虚拟机调用,不能手动调用
每创建一次对象,就会调用一次构造方法
五、权限修饰符
其中public最宽松,什么时候都可以使用。
private最严格,只有本类可以访问。
protected=不写,只有不同包的时候不可以访问,其他时候都可以访问
六、private中set和get方法的应用
对于每一个私有化的成员变量,都要提供get和set方法
set:给成员变量赋值 get:对外提供成员变量的值
idea快捷键:alt+insert可以快速创建
package didi3;
public class Phone {
String brand;
double price;
double size;
public Phone() {
}
public Phone(String brand, double price, double size) {
this.brand = brand;
this.price = price;
this.size = size;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getSize() {
return size;
}
public void setSize(double size) {
this.size = size;
}
}
调用:
package didi3;
public class test {
public static void main(String[] args) {
Phone p = new Phone();
//设置变量值
p.setBrand("Apple");
p.setPrice(7000);
p.setSize(6);
//获取变量值
System.out.println(p.getBrand());
System.out.println(p.getPrice());
System.out.println(p.getSize());
}
}
七、方法的重载和方法的重写
带参构造方法,和无参构造方法,二者方法名相同,但是参数不同,这个为构造方法的重载
方法的重载
在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。
每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系
简单记:同一个类中,方法名相同,参数不同的方法。与返回值无关。也就是上面的 int 和 void
参数不同:个数不同、类型不同、顺序不同
方法的重写
子类出现了和父类一摸一样的方法声明
如果发生了重写,子类中的虚方法会覆盖
当父类的方法不能够满足子类的需求时,需要进行方法重写
override重写注解
- @Override是放在重写后的方法上,校验子类重写时语法是否正确。
- 加上注解后如果有红色波浪线,表示语法错误。
- 建议重写方法都加@Override注解
注意事项
- 重写方法的名称、形参列表必须与父类中的一致。
- 子类重写父类方法时,访问权限子类必须大于等于父类(暂时了解:空着不写<protected<public)
- 子类重写父类方法时,返回值类型子类必须小于等于父类
- 建议:重写的方法尽量和父类保持一致。
- 只有被添 加到虚方法表中的方法才能被重写