小白初学面向对象基本概念分享
一、类和对象
1.对象的特征
属性:对象具有的各种描述,描述了对象是什么。
方法:对象执行的操作,对象能做什么。
2.对象:用来描述客观事物的一个实体,由一组属性和方法构成。
3.类:具有相同属性和方法的一组对象的集合。
类是对象的抽象,对象是类的实体。
4.java中的类:
(1)所有的java程序都以类class为组织单元。
(2)关键字class定义自定义的数据类型。
public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
5.定义类中的方法
①Java中方法的命名遵循如下原则:
首字母小写;
是动词;
如果由多个单词组成,则使用驼峰方式命名;
②语法:(方法的5要素)
public 返回值类型 方法名(参数列表) { //形参特殊如:方法名(String ...a),则代表有很多同一类型的参数
//这里编写方法的主体
}
作用域:public等
返回值类型:有返回值则必须用return返回;无返回类型,则返回值类型为void;
6.java中产生对象
①语法: 数据类型 对象名(变量名)= new 数据类型();
②方法法人调用:
语法:对象名.方法名
方式:自己掉自己的另一个方法,直接调用就可以,写方法名。
别人调用自己的方法,需要将对象new出来之后,再去调用。
7.成员变量和局部变量
(1)成员变量可以看成是属性,在类中定义的。
(2)局部变量,在方法的程程序体中定义
区别:
区别点 | 成员变量 | 局部变量 |
---|---|---|
–作用域 | –整个类法的内部都是可见的 | 仅限于他的方法 |
初始值 | java会给成员变量一个初始值 | 不会给局部变量初始值 |
重名时 | 以局部变量为主;若非要用到成员变量则可以用到关键字this,即this.成员变量名 | 以局部变量为主;若非要用到成员变量则可以用到关键字this,即this.成员变量名 |
8.java中的构造方法
(1)分类:
①隐式构造方法(无参)
②显示构造方法:无参数的构造方法、有参数的构造方法。
(2)作用:构造并初始化实例对象(创建对象)。
(3)定义:public 类名(形式参数列表){构造方法体;}
(4)调用:new 类名(实际参数列表);
(5)构造方法的特点:
①构造器和类具有相同的名字。
②一个类有多个构造器。
③构造器有0、1或多个参数。
④构造器没有返回值和返回类型。
⑤构造器不能被显示调用,构造器总是和new运算符一起调用,在创建一个类的新对象的同时,系统会调用改类型的构造器为新的对象初始化。
二、面向对象(OO)的三大特征
1.封装
1)封装:就是隐藏实现细节。
2)步骤:
a)private 需要隐藏的细节(要隐藏的属性);
b)提供两种方法:setXXX()、getXXX() //set赋值,无返回值、get读取值,有返回值。
(3)封装的好处:
①隐藏性
②提高系统的独立性
③提高软件的可重用性
④降低了构建大型系统的风险性,即使整个系统不成功,个别的独立子系统有可能依然是有价值的。
2.继承
(1)定义:子类具有父类的一般特性(暴扣属性和方法)以及自身的特性。
(2)语法:public class 子类名 extends 父类名{ };
java是单继承,即一个子类只有一个父类
(3)好处:可以使代码重复使用
(4)子类自动继承父类的属性和方法,子类可以定义特定的属性和方法。
方法重写:子类和父类的方法具有相同的名称、参数列表、返回类型。方法重写后,通过super关键字调用父类的方法;
子类的构造方法中,通过super关键字调用父类的构造方法。
(5)在Java 中,所有的Java类都直接或间接地继承了java.lang.Object类。
(6)继承过程:
①产生子类对象时,先产生父类对象,父类对象是有jvm完成的。
②系统默认调用无参的构造器来初始化父类对象。可以在子类构造器的第一行去指定调用父类的哪一个构造器,如:super(形参);
(7)继承调用总结:
例如:
比如A是父类,B是继承与他的子类。
A a=new A();
只调用A自身的构造方法;
B b=new B();
首先调用A的构造方法,然后调用B自己的构造方法
A a=new B();
调用同上
(8)继承特征:
①继承关系是传递的
②继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
③继承提供了软件复用功能。
④继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。
3.多态
(1)定义:多态是具有表现多种形态的能力的特征。
(2)多态是面向对象的程序设计语言最核心的特征,表现形式:
①方法的重载(overload):
实现条件:a)方法名相同 b)方法的参数类型、个数、顺序至少有一个不同。(但是与返回值类型、参数名无关)
②方法的重写(overrides):
重写的特征:a) 发生方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)
b) 子类抛出的异常不能超过父类相应方法抛出的异常(子类异常不能大于父类异常)
c) 子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)