面向对象编程
面向对象的特性:
抽象:
将现实世界中的实物描述为系统中的类,对象的及方法的过程,在这个过程中除去了不相关的数据和信息,保留的数据用来实现系统的功能.
封装:
将对象实现的细节隐藏起来(用户无需知道这些细节),只提供一些公共的方法将对象的功能表现出来.
继承:
面向对象实现软件复用的重要手段,利用继承人们可以基于已经存在的类构建一个新类
子类继承已经存在的类就是复用父类的方法和属性,除此之外,子类还可以添加一些新的方法和属性来满足新的需求.
多态
多态使java更加生命和鲜活起来,多态指子类对象可以直接赋值给父亲变量,但是运行时依然表现出子类的特性.java
引用变量有两种类型,分别是编译时类型和运行时类型由赋值对象类型决定,如果编译时类型和赋值是类型不一致,就会出现所谓多态..
如何创建一个类:
限定范围修饰词 class 类名{
类体
}
类中包含有属性和方法
属性用来描述得是一些静态的信息特征;
方法用来描述得是一些动态的行为特征;
如何构建对象
类名 对象名=new 构造方法(参数);参数可有可无
Scanner scanner=new Scanner(System.in);
Random random=new Random();
如何定义属性:
修饰词 属性类型 属性类名;
如何使用属性:
对象名.属性名
eg:person.age=18;
如何定义方法:
修饰词 返回值类型 方法名(参数){
方法体;
return与返回值类型相同的结果值
}
返回值类型就是调用完方法之后得到什么类型的结果,如果返回值类型为void,意思则是不反回任何内容,而不是说没有返回值类型.
参数:可有可无,看情况..
return关键字,如果不反悔任何内容,则return关键字可以省略不写
如何使用方法:
对象名.方法名();
eg:Person person=new Person();
person.say();
方法之间可以相互调用,但是不能够嵌套来定义
一个对象在不同的时候可以拥有多个引用,但是,在同一时刻,一个引用只能拥有一个对象,如果有一个引用对对象
进行了修改,那么将影响到其他引用.
在同一类中,构建出来的每个对象各自拥有一套属性,相互之间不受影响.
在同一类中,每个构建出来的对象都各自拥有一套属性,但是却是公用类中的方法.这些方法都是储存在一个叫做
方法区的地方.
参数:
形式参数:方法定义的参数(形参)
实际参数:调用方法时传递的值(实参)
方法的重载:
在同一个类中,方法名相同,参数不同(参数的个数不同,参数的类型不同)叫做方法的重载.方法的重载与方法的返回值无关.
限定范围修饰词:
public 共有的 在整个工程中可以使用 安全度低
default(啥也没写) 默认的 在本类和本包中可以使用
protected 受保护的 在本类和本包中可以使用
private 私有的 只能在本类中使用 安全度高
重点:如果一个类中我们没有写构造方法,那么系统编译的时候回默认提供一个空参构造方法
如果我们写了任何一种构造方法,那么系统编译器提供给我们的空参构造方法都将被覆盖掉
为私有属性赋值的第一种方式是提供对应的setter和getter方法.
为私有属性赋值的第二方式是使用有参构造方法.
构造方法的特点:
构造方法名要与类名完全一致(包括首字母)
构造方法不能有任何的返回值类型,连void也不能有
如果我们在一个类中没有些构造方法,如果写了任何一种形式的构造方法,那么java编译器提供的空参构造将被覆盖掉.
如果一个类中写了多个构造方法,则它们属于构造方法的重载,可以使用this()调用本类中的方法
构造方法不能够被显示的调用,只能够通过new关键字进行隐式调用
使用new关键字做了那些事:
1.为要创建的对象开辟内存空间
2.调用类的构造方法创建出对象
3.把对象的地址赋值给声明的引用对象.
空参构造方法:
构造方法就是创建对象的方法
在企业开放中我们一般是要写空参构造方法的,即使我们在程序中使用不到.但是,如果我们的程序中明确要求不能够写出空参构造方法,则可以不写.
有参构造
通过new关键字`构建对象的时候,小括号里面写入的是参数,如果没有参数,直接为空即可,如果有参数,则传递进来的实际参数要与定义时的形式参数保持一致(类型一致,数量一致,顺序一致)
通过this(参数)调用本类中的构造方法.注意:this(参数)必要写在本构造方法的第一行,也就是说在this(参数)之上不能够有任何的可执行代码.
继承
继承是面向对象编程思想的重要特性之一,是从已有的类中派出新的类,这个类吸收了其属性和行为特征,可以扩展自己的新能力.这种技术的存在可以大大的提高代码的复用,缩短软件开发的周期,节约了开发成本.
java语言是面向对象的编程思想的语言,其继承只能够是单继承行为,一个子类只能够拥有一个父类,被继承的这个父类叫做基类.
在java中为了近似的实现多继承,可以使用实现接口的方式.
使用extends关键字使用两个建立继承关系,被继承的类叫做父类也叫作基类,继承的类叫做子类,在发生继承关系的时候,是一次性继承所有,而不是有选择的继承.
私有的属性和私有的方法都不能够被子类继承.
方法的重写:
方法重写的标识:@Override
重写的父类与子类方法名完全相同(数目,类型,顺序)
重写的父类与子类的返回值也必须相同.
子类的限定修饰词可以与父类的相同,权限必须必父类的大,但是绝对不能小于父类.
私有的方法即不能被继承也不能被重写;
最终的方法可以被继承,但是不能被重写;
使用方法的最终目的:就是为了在子类中改变父类方法的实现.