20200924+袁鑫
学习日志:
知识总结:
面向对象(oop)
面向过程:当需要解决问题时,钢珠的是解决过程,每个步骤都亲历亲为。
面向对象:当需要解决问题时,关注的是对象
面向对象三大特征:
- 封装
- 继承
- 多态
类
具有相同的状态的行为的一组对象的集合。
要创建对象必须先定类,通过类来实例化对象。类简单的理解就是代表多个对象的统称,而不是具体的个体。
属性和方法都叫做类的成员
类是对象的模板,对象是类的具体(实例)。
类和对象的关系就是抽象和具体。
方法
方法是完成特定功能的相对独立的程序段。方法一旦定义,可以在不同的程序中多次调用。
方法的设计要遵循功能单一原则,即一个方法干一件事。
[修饰符] 返回值类型 方法名 ([参数列表]){ 方法体 }修饰符
:public/private/protected/final/static
返回值:若不用返回值就用void来声明,有返回值的话在方法体中一定要return 返回值,返回值一定要用同样类型来接收。
方法的返回值
一个方法只有一个返回值,类型为声明时的类型。没有返回值用void声明
方法的参数
在传参的过程中,基本数据类型传递的是值(值传递)引用数据类型传递的是地址/引用(值传递,不过传递的是地址)java只有值传递
可变参
(参数类型 ... 参数名)
可以有任意个可变参,有多个参数时,只能有一个可变参且只能放参数列表的最后
传入的参数可以理解为一个数组,数组的方法都可以用,所以不能同时有一个同数据类型的同名称的可变参和数组
方法的重载
一个类中允许出现方法名相同,参数列表(参数个数、类型、顺序不同)的方法存在,这叫做方法的重载。方法的重载与返回值无关。与修饰符无关。
(non-static)实例变量
是声明在方法之外,类里面的变量
实例变量的作用域
就近原则,实例变量的作用域是整个类,
成员变量和局部变量的区别
- 作用域不同
- 初始值不同
- 在同一个方法中不允许有同名的局部变量,在不同的方法中可以有同名的变量
- 一个类中可以有同名的局部变量和实例变量,方法优先使用局部变量。
构造方法
-
没有返回值,也不是void
-
是一个特殊的方法
-
构造方法的方法名要和类名相同,包括大小写
构造方法名为有参构造和无参构造(默认构造)他们之间是重载关系。
一般有参构造是为实例变量初始化的。
如果不定义构造方法,那么java会自动给类写一个public无参构造,如果显式的声明了构造方法,java都不会给这个类生成无参构造。
构造方法的使用
构造方法是对象初始化时调用的,也就是new对象时调用的
Static方法
使用static修饰的方法叫做static(静态)方法
它属于类,所以也叫做类方法。
调用:
类名.方法名
对象.方法名
虽然对于static方法而言,两种调用法师都可以,但我们最好使用 类名.方法名
生命周期
static方法在类被加载的时候就夹在(并不意味着要执行),而且只加载一次。实例方法在对象初始化时加载。
实例方法和static方法的区别
相同点:
都是属于成员方法。
不同点:
-
由于static方法比实例方法声明周期长,所以在一个类中实例方法可以直接调用static方法,而static方法不能直接调用实例方法。
-
static方法中不能直接调用实例变量,而实例方法可以。
-
static方法不能使用this。
this
谁调用this,this就指向谁。
this不能调用局部变量。
不推荐使用this来调用类变量或类方法。在本类中可以直接调用类变量和类方法,在其它类中使用类名.类变量/类方法的调用。
初始化
类中会存在一个或多个初始化,用于初始化变量
{ //这里可写多行代码,也可调用方法}
有多个实例化初始块儿时,先声明先执行。
static初始化
初始化static变量。只在类加载第一次的时候加载。
类的成员不包括以下:
- 构造方法
- 实例初始化
- static初始化
他们在实例化对象时的执行顺序:
-
static初始化
-
实例初始化
-
构造方法
心得:
今天对于面向对象的学习感觉有些仓促,知识点有点杂,可能上课的时候跟着老师的思路学习起来还是能接受的,但是自己下来敲的时候就有点小不熟悉。
近期评论