类和对象
1.面向对象
相对于面向过程的一种编程方式
面向过程:需要完成一件事,要自己亲力亲为,注重过程
面向对象,更加符合人的思维方式,当需要完成某个功能时,只需要找具有该功能的类,不问过程,只问结果,注重 对象
java中的面向对象,是指将功能封装到类中,当需要使用这个功能是,不用考虑自己去完成,只考虑那个类具备这样的功能就可
特点:
1.符合人们的思考习惯
2.将复杂的问题简单化
3.从执行者变成了指挥者
2.类
对一类现实事物的抽象描述,现实事物都具备属性和行为,类的成员-变量描述属性,成员方法描述行为
对象
根据类的描述创建出来的具体实例.
类的定义格式:
public class 类名{
private 数据类型 变量名;
private 数据类型 变量名;
public 类名(){}
public 类名(参数列表){
属性初始化值;
}
set/get方法
}
类的使用格式:
1.导包:
同一个包下不需要导包
2.创建对象
数据类型 对象名 = new 数据类型();
3.调用属性和方法
对象.属性;
对象.方法
private 访问权限修饰符,可以修饰成员变量和成员方法,被修饰过的变量和方法,只能在本类使用,类外不可调用
this关键字,
一般在方法内使用,代表当前对象的引用,谁调用方法,this就代表谁
this用来区分成员变量和局部变量,因为成员变量是属于对象的
构造方法:
创建对象时调用的方法,构造方法可以初始化对象
定义格式:
public 类名(){}
public 类名(参数列表){
初始化成员变量;
}
注意:1.构造方法可以重载,一个类中可以定义多个构造方法
2.如果一个类中没有定义任何构造方法,java会自动提供给一个默认的空参构造方法
3.构造方法一旦定义,java就不会在提供默认的构造方法
JavaBean:
具体的公共的类,具有私有的成员变量,空参的构造方法,set/get方法,就称为JavaBean类
成员变量和局部变量的区别
位置不同: 成员变量定义在类内,方法外
局部变量定义在方法内或是形参列表
作用域不同:
成员变量在整个类内有效
局部变量在方法内或代码块中有效
寿命周期不同:
成员变量-是属于对象的,随着对象的创建而创建,对象的消失而消失
局部变量随着方法压栈而产生,弹栈而销毁
内存中的位置不同:
成员变量随着对象的创建存储在堆内存中,
局部变量在栈内存中
默认值:
成员变量有默认值,整数0,小数0.0,字符 空格,布尔false,引用类型null;
局部变量没有默认值,不赋值不能使用
变量同名:
1.同一作用域下,变量不能同名(包括成员变量和局部变量)
2.同一作用域下,成员变量可以和局部变量同名
成员变量和局部变量同名的情况下,就近访问原则,先在局部范围内找有没有这个变量,有直接使用, 如果没有,再去找成员变量,成员变量有使用,没有报错.
可以使用this关键字来区分.