JAVA 面向对象基本知识
初识类与对象
类的定义
class 类名{ 变量类型 变量名称; //这里可以有n个声明 }
实例化对象
1 类名 对象名 =new 类名();//是否带参得看构造方法,后面会有解释这里可以无视
成员变量
一个类中的变量是可以设置是否可以访问、修改的,例如:
class Test{ String test=1;//默认使用public修饰,所以是可以访问、修改的,此外还有private int test=2;
}
调用方法使用 类名.变量 的方式进行访问、修改。
引用性质
和数组名一样,对象名也是一个引用,如果一个变量赋值给对象,那么对象之前的对象就在内存中变成垃圾,由java的JVM虚拟机的垃圾回收机制进行回收。
成员函数
既然我们能够在主方法里面写函数,那么我们也能在自定义类中进行函数的编写,方法一样。但是需要主义变量的作用域。
在类的内部可以不用调用自身的类,默认指向本类的成员变量,但是如果形参与成员名一样则需要this.成员变量进行指定。
带返回类型的成员函数
返回类型 函数名称(类型 参数,类型1 参数1....){
函数内容;
return 和函数返回类型必须一样;
}
函数重载(Overload)与函数重写(Override)
@Overload
函数重载:需要参数个数不同或个数相同,类型不同,参数类型相同列表中出现的顺序不同,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。也称为静态多态
Override
函数重写:主要存在于继承关系,当子类定义了与父类中完全一样的方法时(参数名称、参数类型及个数、返回值类型),这样的操作就为方法的覆写。
补充:多态:一般一个对象只需要记住一个名字利用重载来调用相同名字不同方法实现不同的功能。
构造函数
函数名必须与类名称相同
没有返回类型,作用是在实例化类的时候进行初始化
class Test{ int num; String name; //这里只是声明的变量没有初始化 void Test(){ num =1; name="老6"; } } //如果我们实例化Test,Test.num为1,Test.name为"老6" class Test{ int num; String name; //这里只是声明的变量没有初始化 void Test(int n,String name){ this.num =n; this.name=name; } } //如果我们实例化Test 这时可以传参两个传什么进去里面的成员变量也就变成了对应传进去的值Test t = new Test(2,"哈哈");