面向对象 基础
1.基本概念
面向对象(oop):
Java语言是一种面向对象语言,面向对象是一种直观,而且程序简单的程序设计方法,比较符合人类认识现实世界的思维方式。其基本思想是把问题看成若干个对象组成,这些对象相互独立,但又可以相互配合,链接和协调。从而实现程序的任务和功能。
面向对象的三大特征:封装,继承和多态。
对象:
现实中的个体,是类别下的一个特定个体。
用来描述客观事物的一个实体,由一组属性和方法构成。
属性——对象具有的各种特征,每个对象的属性都有特定值。
方法——对象执行的操作。
类:
现实世界中的类别,一种笼统的概念。
具有相同属性和方法的一组对象的集合。类是对象的抽象,对象是类的具体。
2.定义类
定义类的步骤:1 .定义类名
2. 编写类属性
3.编写类方法
格式:
public class 类名{
//定义属性部分
属性1的类型 属性;————————————》成员变量
.................
属性n的类型 属性n
//定义方法部分-------------------------------------------》成员方法
方法1;
.......................
方法m;
}
3.创建和使用对象
创建对象的语法格式:
类名 对象 =new 类名();
new 是关键字 左边类名为对象的数据类型 右边类名()称为类的构造方法。
使用对象语法格式
对象名.属性 //引用对象的属性
对象名.方法名()//引用对象的方法
4.对象数组
对象数组的类型就是具体的类名,对象数组存储的就是这个类的对象,每个数组元素就是一个对象,当根据下标找到某个元素时,可以按照对象的使用方法来使用该元素。
升级类的功能
成员方法
主要包含两个部分,成员方法和成员变量
成员方法
1.带参数的方法
举例
public class Person{
public String name;
public String gender;
public int age;
public void work(String contect){
System.out.println(this.name+"的工作理念:“+contect);
}
}
2.方法载重
是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或者参数个数。
特点:在同一个类中
方法名相同
参数的个数或类型不同
使用
优点 :是对原有方法的一种升级,可以根据参数的不同,采用不同的实现方法,而且不需要编写多个名称,简化了类调用方法的代码。
成员变量
1.成员变量的作用域
类中的属性,也就是直接在类中定义的变量称作成员变量,它定义在方法外部。
2.局部变量作用域
定义在方法中的变量。
3.成员变量和局部变量的区别
1) 作用域不同。局部变量的作用域仅限于定义它的方法,在该方法外无法访问它。成员变量的作用域整个类内部都是可见的,所有的成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。
2) 初始值不同。对于成员变量,如果在类定义中没有给他赋予初始值,java会给他一个默认值,基本数据为0,引用类型为null。但是java不会给局部变量赋予初始值,因此局部变量必须要定义赋值后在使用。
3)在同一个方法中,不许有同名的局部变量。在不同的方法中,可以有同名的局部变量
4)局部变量可以和成员变量同名,在使用时,局部变量具有更高优先级。
4.数据类型
在Java中,变量类型分为两种:基本数据类型,引用数据类型
引用数据类型包含3种:类 数组和接口。
对于基本数据类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值。赋值操作传递的是变量的值,改变变量的值不会影响另一个变量的值。
对于引用数据类型,赋值是把原对象的引用(可理解为内存地址)传递给另一个引用。对数组而言,当一个数组名给另一个数组名赋值时,相当于传递了一个引用,此时,这两个引用指向同一个数组,也就是指向同一内存空间。
同理,基本数据类型和引用数据类型在传递参数时,同样会有区别。