面向对象基础
1.1面向对象的基本概念
1.面向对象
java语言是一种面向对象的语言,面向对象是一种直观而且程序结构简单的程序设计方法,它比交复合人类认识现实世界的思维方式,
其基本思想是把问题看成是由若干个对象组成,这些对象之间是独立的,但又可以相互配合链接和协调,从而完成整个程序要实现的任务和功能。
面向对象的三大特征:封装、继承和多态。
2.对象
对象是用来描述客观事物的一个实体。
3.类
类是具有相同属性和方法的一组对象集合.
类定义了对象将会拥有的属性(属性)和行为(方法)
类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念模型,而一个对象时一个类的实例。
1.2定义类
1。定义类的语法格式如下。
[访问修饰符]class类名{
//省略类的内部具体代码
}
访问修饰符如public、private等是可选的
class是声明类的关键字
按照命名规范,类名首字母大写。
2.属性
java中类的内部包含属性和方法。对象所拥有的特征在类中表示时称为类的属性。
定义属性的语法格式如下
[访问修饰符]数据类型 属性名;
访问修饰符是可选的
除了访问修饰符之外,其他的语法和声明变量类似。
3.方法
语法格式如下
[访问修饰符] 返回类型 方法名称(参数类型 参数1,参数类型 参数2,......){
//省略方法体代码
}
1.3创建和使用对象
1.创建对象
创建对象的语法格式如下
类名 对象名=new 类名();
new是关键字
左边的类名为对象的数据类型。
右边的类名()称为类的构造方法
2.使用对象
zaijava中,要引用对象的属性和方法,需要用 “."。
语法格式如下
对象名.属性 //引用对象的属性
对象名.方法名() //引用对象的方法
3.对象数组
对象数组的数据类型就是具体类名,对象数组存储的就是这个类的对象,每个数组元素就是一个对象,当数据下标找到某个元素时,可以按照对象的使用方法来使用该元素。
2.1成员方法
1.带参数的方法
带参数的work()方法可以接受用户输入的内容。创建work()方法时定义的参数交=叫形式参数,简称形参。调用方法时传入的参数叫做实际参数,简称实参。
2.方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数。
方法重载的特点
1)在同一个类中
2)方法名相同
3)参数的个数或类型不同
4)方法的返回值不能作为判断方法之间是否构成重载的依据
2.2成员变量
1.成员变量作用域
类中的属性,也就是直接在类中定义的变量称作成员变量,它定义在方法的外部。
2.局部变量作用域
局部变量就是定义在方法中的变量
3.数据类型
在Java中变量的类型分为两种:一种是基本数类型,还有一种叫做引用数据类型。
java中的引用数据类型包括3种:类、数组和接口
2.3构造方法
1.构造方法的定义
构造方法的作用主要作用是进行一些数据的初始化。语法格式如下
[访问修饰符]方法名([参数列表]){
//......省略方法体的代码
}
1)构造方法没有返回值
2)默认构造方法没有参数,因此参数列表可选
3)构造方法的方法名和类名相同。
2.构造方法重载
构造方法同样可以重载,即在同一个类中可以定义多个重载的构造方法。
3.1封装概述
java中封装的实质就是将类的状态信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
3.2封装的步骤
1.修改Person类中的属性由public修饰改为private即可。
2.设置setter/getter()方法
可以手动添加setter/getter()方法,也可以使用组合键Ctrl+Shift+S由系统添加。
3.设置属性的存取限制
没有对属性值设置合法性检查,需要在setter方法中进一步利用条件判断语句进行赋值限制。
4.1包的概述
java中的包机制也是封装的一种形式
包主要有以下3个方面的作用
1)包允许将类组合成较小的单元,易于找到和使用相应的类文件
2)防止命名冲突:java中只有在不同包中的类才能重名。不同的程序员命名的类在所难免。
3)包允许更广的范围内保护类、数据和方法。根据访问规则,包外的代码有可能不能访问该类。
4.2包的定义
package包名
1)package是包名
2)包的声明必须是Java源文件中的第一条非注释性语句,而且一个源文件只能有一个包声明语句,设计的包装需要与文件系统结构相对应。因此,在包命名时要遵守以下编码规范
一个唯一大的包名前缀通常时全部小写的ASCII字母,并且是一个顶级域名com、edu、gov、net及org通常使用组织的网络域名的逆序。
包名的后续部分依不同机构各自内部的规范不同而不同。
4.3包的使用
使用包将Person类和PersonTest类进行分类。
5.static
1.用static关键字修饰属性
用static修饰的属性称为静态变量或者类变量,没有修饰使用static修饰的属性称为实列变量。
2.用static关键字修饰方法
用static修饰的方法称为静态方法或者类方法,不用static关键字修饰的方法称为实列方法