Java面向对象基础
面向对象中的class变量
- 变量与局部变量的区别:
定义的位置不同
局部变量:定义的位置是在方法内部或者是方法构造中
成员变量:成员变量定义在class里面方法外面默认值
局部变量:无默认值
成员变量:字面值与数组相同适合范围
局部变量:从定义到包含其构造结束
成员变量:自身类有效命名
局部变量:局部变量的命名不允许冲突
成员变量:成员变量的变量名可以和局部变量重名,局部变量优先
方法的重载
- 什么是方法的重载?
一个类中定义多个相同名称的方法
特点:
1. 方法名必须相同
2. 参数列表不同(类型,个数,顺序)
3. 与访问修饰符,返回值无关
好处: 屏蔽使用差异,灵活,方便
**注意: ** 只是参数不同不能重载
public class test {
public test(){}
public test(String name){}
public test(String age){}
}
构造方法
- 什么是构造方法?
类中的特殊方法,主要用于创建对象
特点:- 名称与类名完全相同
- 没有返回值
- 创建对象时,触发构造方法,则编译器默认提供无参数构造方法
构造方法的重载: 普通方法的重载是一样的
this关键字
this关键字的使用方法
- 调用实例属性、实例方法,如this.name,this,say();
- 调用本地类中其他的构造方法,如this();this(实参);
public class demo_4 {
public static void main(String[] args) {
demo_test.car car = new car();
car car1 = new car("黄色发法拉利","yellow","China","129999999$");
car car2 = new car("黄色保时捷","yellow","China","146456544$");
car car3 = new car("黄色阿尔法","yellow","China","414324534$");
car car4 = new car("黄色布加迪","yellow","China","414325345$");
demo_test.car[] St = new car[]{car1, car2, car3, car4};
for (int i=0;i<St.length;i++){
String message = St[i].toString();
System.out.println(message);
}
Person person = new Person("李佳骏","165","175","500101200206082213");
System.out.println(person);
// car car5 = new supercar("黄色发法拉利","yellow","China","129999999$");
}
}
class supercar extends car{
@Override
public String getCarPrice() {
if(Integer.valueOf(this.carPrice)>100000){
this.carShape = "跑车";
}else {
this.carShape = "一般汽车";
}
return super.getCarPrice();
}
@Override
public String toString() {
return this.path + " : {" +
"carName='" + carName + '\'' +
",carColor='" + carColor + '\'' +
",carAddress='" + carAddress + '\'' +
",carPrice='" + carPrice + '\'' +
",carShape='"+carShape+'\''+
'}';
}
}