面向对象和面向过程
二者都是一种思想,面向对象是面向过程而言的,面向过程,强调的是功能行为,面向对象,将功能封装进对象,强调具备功能的对象
面向对象更加强调运用人类在日期的思维方式
面向对象的三大特征:封装、集成、多态
类与类之间的关系
面向对象思想概述:
程序员从执行者转换成为指挥者
完成需求的时候:
1、先找出具有所需功能的对象
2、如果该对象不存在,则创建
这样可以简化开发并提高开发效率
类是对一类事务的描述,是抽象的
对象是实际存在的该事物的给个个体,也称为实例, 万物皆对象
成员变量和局部变量的区别:
成员变量定义在类中,整个类中都可以访问
成员变量分为类成员变量和实例成员变量,实例变量存在与对象所在的堆内存中
成员变量有默认初始化值
成员变量的权限修饰符可以根据需要修改
局部变量只存在局部分为内,如:方法内、代码块内
局部变量存在与栈内存中
局部变量的作用范围结束,变量空间自动释放
局部变量没有默认初始化值,每次必须显示初始化值
局部变量声明时候不指定修饰符
栈内存中:对象的引用、局部变量
堆内存中:new 出来的东西,包含成员变量
类的访问机制:
在在一个类中访问机制:类中的方法可以直接访问类中成员变量(static关键字除外)
在不同类中访问机制:先创建访问类的对象,在用对象访问类中定义的方法
对象的产生:
当一个对象被创建时,会对其中的各种类型的成员变量自动进行初始化赋值
匿名对象:
如果一个对象只需要一次访问,就可以使用匿名对象访问
使用匿名对象作为实参传递给一个方法使用
方法的重载:与返回值类型无关、只看参数列表
可变参数的形参
java中方法的参数传递方式只有一种方式:值传递(将实际参数的副本传入方法体中,而参数本身不受影响)
面向对象特征之一:
封装和隐藏:使用者对内部定义的属性的直接操作,会导致数据的错误,混乱或者安全问题
保护方式:信息隐藏
隐藏一个类中的不需要对外提供的实现细节,使用者只能通过事先定制到的方法来访问数据,可以方便的加入逻辑控制,限制对属性的不合理操作,便于修改,增强代码的课维护性
四种访问权限修饰符:
类的成员之三:构造器(构造方法)
构造器的特征
具有与类相同的名称
不声明返回值类型
不能被static、final、abstract、synchronized、native修饰,不能有returne 语句
构造器的作用,创建对象,给对象赋值
this关键字:
在方法体内部使用,this代表这个方法的所属对象的引用
在构造方法中使用:表示该构造器正在初始的对象
this关键字表示当前对象的时候,可以调用类的方法、属性、构造器
使用this调用本类的构造器:
class Person{ // 定义Person类
private String name ;
private int age ;
public Person(){ // 无参构造
System.out.println("新对象实例化") ;
}
public Person(String name){
this(); // 调用本类中的无参构造方法
this.name = name ;
}
public Person(String name,int age){
this(name) ; // 调用有一个参数的构造方法
this.age = age;
}
public String getInfo(){
return "姓名:" + name + ",年龄:" + age ;
}
}
this可以作为一个类中,构造器相互调用的特殊格式
使用this关键字必须放在首行
使用this调用本类的其他构造器,保证至少一个构造器是不用this关键字的