类:类是对一类事物的描述,是抽象的,概念上的定义。
语法格式:
【类的修饰符】 class 类名【extends父类】【implements 接口名】{
成员变量的声明(属性)
成员方法的声明(方法)
}
例:public class PersonTest {
}
(一)方法:一段代码片段,并且可以完成某个特定的功能,并且可以重复使用。
(定义在类中,在一个类中可以定义多个方法,方法体当中不能定义方法)
语法格式:【修饰符列表】 返回值类型 方法名(形式参数列表){
方法体
}
·修饰符列表:-public static
·返回值类型:-如果不返回具体数值:void(不能有 return 值)
-有具体数值:byte,short,int,long…(有 return 值)
·方法名:合法标识符,首字母小写,单词首字母大写
·形式参数列表:-个数可以为0~n个
-int a,double b
·方法的调用: -本类中:类名.方法名(实参)
-其他类中:类名.方法名(实参)
Public static void Method(形参){ }
Public static int/String Method(形参){ }
-不带static方法的调用:1.先创建方法
2.引用.方法(实参)
(二)构造方法:
·构造方法又叫构造器,是类中的一个特殊的方法。
·语法格式:
【修饰符】构造方法名(【形参列表】){
//由零条或者多条可执行的语句组成的执行体
}
·构造方法不返回任何数字类型,即它是省略void关键字的void型
·修饰符:修饰符可以省略,也可以是public,protected…
·构造方法名必须与类名相同
·形参列表的格式和定义方法形参类表格式相同
·java允许一个类中有若干个构造方法,但是这些构造方法的参数必须不同,或者参数个数 不 同
·若程序中未定义构造方法,java则为程序自动提供一个无参的构造方法
This关键字:
·this是一个引用,是一个变量,this变量中保存了内存中的地址指向自身
·this可以出现在“实例方法中”,this指向当前正在执行的这个动作的对象
·this在大多数情况下可以不写
·不能使用在带有static的方法中
(三)设置器(setter)和访问器(getter)
1设置器
·方法声明部分有返回值类型
·方法声明中至少有一个参数
·方法体内有返回语句
2访问器
·方法返回类型为void,即不返回类型
·方法声明中至少有一个参数
·方法体内肯定有赋值语句
(四)方法重载
·同一个类中的两个或多个方法可以具有同一个名称
·被重载的方法必须形参列表不一样(参数个数或类型不一样);
·被重载的方法可以改变返回类型;
·被重载的方法可以改变访问修饰符;
·返回值类型不能作为重载函数的区分标准。
例:public static int Sum(int a,int b){
int c=a+b;
return c;
}
public static String Sum(String a,String b){
String c=a+b;
return c;
对象:对象是实际存在的该类事物的每个个体,因为也被成为实例。
类和对象的关系:类是对象的抽象,对象是类的实现类是由属性和方法构成,它的每一个对象都有对应的属性和方法。
面向对象三大特征:
(一)封装:保护属性值不被随意修改
私有化属性,并提供getter、setter对外接口
同一个类 | 同一个包 | 不同包中的子类 | 不同包中的非子类 | |
private | √ | |||
default | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
(二)继承:代码重用、多态的基础
extends关键字
默认的根类是Object,单根继承
(三)多态:
1. 向上转型
·本质:父类的引用指向了子类的对象
·语法:父类类型 引用名 = new 子类类型();
·特点:编译看左边,运行看右边
可以调用父类类型中的所有成员,不能调用子类类型中特有成员;最终运行效果看子类的具体实现!
2. 向下转型
·语法:子类类型 引用名 = (子类类型)父类引用;
·特点:①只能强转父类的引用,不能强转父类的对象
②要求父类的引用必须指向的是当前目标类型的对象
③可以调用子类类型中所有的成员
面向对象三大思想:OOA(面向对象分析)
OOD(面向对象设计)
OOP(面向对象编程)
对象的初始化: 1.对象的声明格式:类名 对象名;
例:Student student;
2.对象的初始化:new 关键字;
例:new Student(实参);
3.引用对象:对象名.成员变量名
对象名.成员方法名(参数列表);