方法:就是一个功能,一个行为,封装了一段逻辑。(一个方法尽可能的封装一个功能)。
方法的定义格式:
修饰词 返回值类型 方法名(形式参数){
方法体
}
定义时方法的位置:与其他方法并列存在,在类体里
类的结构:
修饰词 class 类名{
属性
方法
}
返回值类型:
第一种:void:空返回值类型,无返回值类型
第二种:八大基本数据类型,或者是引用类型中的任意一个
return:结束方法的作用。
如果有返回值类型,return后面一定要有一个返回值类型的数据。
形式参数:符合变量的声明格式;形参的作用域,整个方法体,在定义期间没有具体值,起到限制、规定的作用。在编写方法体时,是可以使用的。
方法的调用:
无返回值类型的方法:方法名();
有返回值类型的方法:返回值类型 变量 = 方法名();
带参数的方法调用时,就要给形式参数赋具体的值(实际参数):方法名(1,2)。jvm管理的另一块内存叫方法区:方法区存的加载类的信息(.class文件)。main方法是jvm自己调用的jvm会在栈中,给每一个方法单独分配一块空间--栈帧,栈帧里存的是形参以及方法体里声明的变量,方法结束,栈帧就消失了。
一、抽象数据类型
1、类和对象
①类就是类别,种类,类型。现实生活中,是人发现一堆个体,有相同的特征,以及相似的行为,然后把这些个体总结为一种类型,给予一个名字,类名。
现实生活中先有个体,再有类型。计算机中:先有类型,再通过这个类型模板,创建个体(对象)。
面向对象: 就是指所要研究的,面对的,具体个体(实例)。
②什么是抽象数据类型:
用一堆不同类型的数据进行描述的事务。
③什么是类型:
就是一种抽象数据类型,被赋予名字。
类的结构:
修饰词 class 类名{
共同特征
共同行为
}
类是对象的模板。
④什么是对象?对象是类的一个具体实例(个体)
⑤怎么创建对象?使用关键字new(jvm帮助创建对象)
格式如下: 类名 变量名 = new 类名();
对象属性的访问:变量名.属性名
创建对象时,会给属性分配默认值。
引用类型:默认值 null
整型: 0
浮点型: 0.0
字符类型:'\u0000'
布尔类型: false
2、面向对象
①类和对象的关系
有共同特征和共同行为的事务归纳为一种类型。类是对象的模版。对象是类的实例化,具体个体。
②面向对象编程--面向过程编程
面向对象把数据封装到一个类型的对象上。
面向过程没有对象,方法的调用。
③类的定义和对象的创建
④引用数据类型变量存的是对象的地址信息,变量之间的赋值是址传递。基本数据类型变量存的是对象的值,变量之间的赋值是值传递。
⑤方法区、栈、堆
栈:存储的是方法中的变量,包括参数,以及内部的临时变量
堆:存储的是引用类型的值(实际上是对象)
方法区存的加载类的信息(.class文件)。
⑥方法的定义
修饰词 返回值类型 方法名(形参){
方法体
}
方法的重载:在同一个类中,方法名相同,方法签名不同。
构造方法,特殊的方法,没有返回值这个位置。可以重载。
关键字this:在方法定义期间是没有意义的,代指未来对象。
this(有参传参),只能在某一个构造方法中使用,只能放在首行首句,表示调用本类中其他的构造器。
二、继承
1、java语言支持单继承,一个类可以继承一个父类,这样,父类里的方法及属性,被子类继承,有利于程序的功能扩展。
2、方法的继承:除了私有都可以。
3、方法的重写:子类重写父类中的方法,方法名不变,参数类型列表不变。返回值类型不变或是父类型的返回值类型。修饰词不变或范围更大。
4、构造器不能被继承,但是子类的构造器中一定会有一个构造器调用父类的构造器。子类首行首句使用super调用(有参传参)。