java——面向对象(一)
类:
概述:一类事物的抽象描述(通过事物可以抽象出类,如人类,交通工具等)
定义类的语法:[修饰符] class 类名{类成员;}
说明:
修饰符:修饰或限制当前类(public,private,protect等)
class :类定义的关键字。
类名 :自定义,各单词首字母需大写(可以为中文字,但不建议使用中文命名)
类成员 :类内部定义的所有内容。包含:属性(String name;等)、方法(构造函数)
类的实现步骤可以分为以下几步走:
1.找对象(即找到要描述的对象)
2.分析对象(对对象进行分析,找到属性和行为)
3.描述类(定义类)
4.使用类(创建对象)
对象:
概述: 一类事物中的一个真实的个体(对象属于类)。
实例化对象: 类名 对象名 = new 构造函数();
说明:
对象名:自定义的,命名规则与变量相同。
new :运算符,用于调用构造函数进行对象初始化(即内存申请);
构造函数:用于申请内存并初始化类的成员变量。
构造函数:
概述:一种特殊的方法。可以成为:构造器、构造方法、Constructor。通过构造函数可以对对象进行初始化操作。
语法:[修饰符] 函数名(与类名一致)(参数列表){[函数体;]}
特点:
1.构造函数没有返回值类型
2.函数名必须和所在的类名同名
3.构造函数不能随意的被调用,只能在实例化对象时通过new运算符进行调用
4.如果代码中未显示定义构造函数则编译器将提供一个无参的构造函数,如果显示的提供了自定义的构造函数则编译器将不提供任何构造函数。
包:
概述:对源代码文件的逻辑分组。通过包对源代码的管理可以实现同时定义同名文件(文件不能在同一个包中);
命名规范:
1.全部由小写字母组成
2.不能以“.”开始或结束
3.采用由大到小的顺序进行定义 eg:com.xxxx.cc.dao
变量的作用域:
概述:变量的可以使用的范围。
作用域:
全局变量:在整个类的任意方法中都可以使用。
局部变量:只能在当前代码段中进行使用;(一对{}称为代码段)
关于this:
概述:this关键字表示当前对象。
作用:当局部变量和全局变量重名(命名冲突),通过this关键字可以区分局部变量和成员变量(使用this调用的是成员变量(全局变量,也是类的属性));
面向过程与面向对象:
面向过程:通过方法来描述每一个过程,所以面向过程的变成也称为面向函数的编程。面向过程编程的方式的缺点是:代码的复用性(可重用性)较低,不适合较大项目的编写。
面向对象:将事物的每一个过程的方法封装到一个类文件中,使用时通过对象的操作来调用每一个功能。面向对象的优点:类文件可以被公用,最大现对提高了整个类文件的可重用性。所以面向对象的编程被现在的项目所使用。
面向对象的三大特性:
封装,继承,多态
封装:
概述:将数据、方法包装到一个类的过程就称为类封装。通过封装使用者不用关心类内部的实现,只要调用类的成员即可。
封装:
类的封装:封装成类文件
功能的封装:将一些代码定义成一个方法
数据的封装:将类的字段私有化,然后通过特定的手段对数据进行访问(数据的封装其实就是对数据进行保护)
数据的封装:
实现方法:通过访问修饰符private对类的成员字段进行修饰(被private修饰的成员字段自能在当前类中使用),然后通过getter和setter访问器提供数据访问的接口。
实现步骤:
1、变量私有化
2、get和set访问器(可以同时存在,也可以只存在其一)
使用get和set的好处:
通过set访问器可以有效的设置数据的值。
通过个体访问器可以获取私有字段的值。
继承:
概述:面向对象的三大特性之一,通过继承可以解决代码冗余的问题,提高代码的复用性。
实现:[修饰符] class 类名1 extends 类名2{}
说明:
类名1:称为子类,也称为派生类。
类名2:称为父类,在某些语言也成为基类、超类(Object就是所有类的父类,称为基类、超类)
继承的优点:减速代码冗余,提高代码复用性
***子类可以继承父类什么内容?
1.子类可以继承父类的所有非私有成员
2.父类在不同一个包中,父类中默认修饰符定义的成员子类无法继承
3.父类的构造函数子类无法继承。
**阻止继承的方法:final类
修饰符
多态:
概述:同一事物在不同环境所呈现出的不同的作用及效果就称为多态。
实现方式:
1.父类作为方法参数进行传递
2.父类作为返回值进行使用。
转型:
向上转型:父类 对象名 = new 子类();
向下转型:自乐 对象名 = (子类)父类对象;