面向对象
类与方法
Java面向对象具有三大特征
● 封装(Encapsulation)
set(变量类型 变量名);
变量类型 get(){return};
● 继承(Inheritance)
exdens
● 多态(Polymorphism)
父类 变量名 = new 子类();
调用子类相同的方法
Class类
class类中可以有 变量,方法,结构语句等等
方法(methon)中分为:
有参,无参,有返回,无返回参数
有参有返回:public int a(int a){a = 1;return 1;}
有参无返回:public void a(int a){a = 1;}
无参有返回:public int a(){return 1;}
无参无返回:public void a(){}
例如:
class 变量名{
public static void main(String[] args){
methonTest(17); //小明今年17岁
}
int a = 1; //变量
//有参的无返回值方法
public void methonTest(int b){
System.out.printf("小明今年"+a+"岁");
}
}
—equals与== 的对比
Java中==和equal的区别为:
1) == 表示:
判断2个变量或对象实例是否指向同一个内存空间
equals()表示:
判断2个变量或对象实例所指向的内存空间的值是否相同。
2) == 表示:
对内存地址进行比较
equals()表示:
对字符串的内容进行比较。
--总结:
== 的作用:
基本类型:比较值是否相等
引用类型:比较内存地址值是否相等
equals 的作用:
引用类型:默认情况下,比较内存地址值是否相等。
可以按照需求逻辑,重写对象的equals方法。
重写重载与关键字
---重载(Overlord):
多个方法不同的形参为重载,例如:
public void person(int a){}
pubilc void person(int a,Stirng b){}
---重写(Override):
1,重写是以exdends为基础
2,改变原父类中的方法重新使用
3,只对同名同参数的方法进行重写
---递归
递归是指自己调用自己
假如student()是个方法,那么在方法内则可以这样调用:
public void student(int c){
int a = b = 1;
c = a + b;
System.out.printf(c); //此时C的值等于三3
student(2); //给参数中的C赋值为2
System.out.printf(C); //自己调用自己的方法4
}
---匿名对象
匿名一次相当于新建一个对象,且仅限于一个对象而已
new student().对象方法();
new student().对象方法();
这是2个对象分别调用了对象方法,不是一个对象调用了多方法。
常用关键字
this:
指定当前方法/对象/类中的参数
public void getName(String name){
this.name = name;
}
super:
向前调用,只能调用父类中的方法;
static:
共享当前类的数据
修饰变量之后所有的对象都能共享
final:
修饰关键字,用于类/方法/变量
修饰过后的值为最终的,不可改变
--类:
final 类{} //子类将不能被继承
--方法:
public final void show(){} //方法不能被重写
--变量:
final int a = 1; //变量成常量,且不可变