List item
类
具有相同的特点(属性)和行为(方法)的集合的总称
对象
是某一类事物具体的体现(实例),将类的概念具体化
属性
是一类事物的特点或特征
方法
是一类事物可以进行的行为或动作(方法的命名遵循驼峰方法,首字母小写,其余单词首字母大写)
[访问修饰符] 返回值类型 方法名(参数){…【方法内执行的语句】}
返回值类型:该方法执行后的结果的数据类型
基本数据类型/引用数据类型(int float double Array)
void 空,方法执行后,不返回任何数据
如果方法需要返回值
- 需要在返回值类型处写上需要返回数据所对应的数据类型
- 在方法体的最后需要使用return值的格式,将值明确返回
参数列表: - 形式参数:该方法执行可能会用到的数据
- 形式参数的写法:数据类型,参数名
- 列表内可写多个参数,也可不写
- 有参数时,在使用方法时要调用,必须给参数先赋值
{}方法体
方法功能的具体体现:
无返回值,无参数
无返回值,有参数
有返回值,无参数
有返回值,有参数
成员变量的默认值
数据类型 | 默认值 | |
---|---|---|
整数(byte short int long) | 0 | |
基本类型 | 浮点类型(float double) | 0.0 |
字符型(char) | 空格 | |
布尔类型(Boolean) | false | |
引用类型 | 数组、类、接口、字符串 | null |
备注:方法内定义的变量没有初始化、不能被使用 |
变量根据定义的位置不同,我们给变量起了不同的名字
public class People{
String name ="小明";//成员变量
public void eat(String what){//局部变量
String food ="鸡蛋捞面";//局部变量
System.out.println(name +"中午吃的是:"+food);
}
}
在类中定义的位置不同
成员变量:类中、方法外
局部变量:方法中或者方法声明上(形式参数)
作用范围不同
成员变量:类中
局部变量:方法中
初始值不同
成员变量:有默认值
局部变量:没有默认值。必须先定义赋值,才能使用
在内存中存储的位置不同
成员变量:堆内存中
局部变量:栈内存当中
生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法调用结束而消失
修饰符不同
成员变量:可以使用修饰符
局部变量:不可以使用修饰符
面向对象的三大特点
封装,继承,多态
封装
原则:将属性隐藏起来,如果想要访问类中的某个属性,提供公共的访问方法对其访问
封装的步骤:
1.private关键字来修饰成员变量
2.对需要访问的成员变量提供getXxx和setXxx方法
注:get是取值,set是赋值
3.封装时的权限控制符区别:
封装的操作
private的含义:
1.private是一个权限修饰符,代表最小的访问修饰符
2.可以修饰成员变量(全局属性),也可以修饰成员方法
3.被private修饰的成员变量和成员方法,只能在本类中去访问
private的使用格式
private 数据类型 变量名 |
---|
封装的好处
1.良好的封装能够减少代码之间的耦合性
2.类内部结构可以进行随意更改
3.可以对成员变量(全局属性)进行更精准的控制
4.隐藏信息,实现细节(就是隐藏对象的属性和实现细节。仅对外提供公共访问方式)
封装优化1_this关键字
我们发现setXxx()方法当中形参名字不符合我们标识符的命名规范—见名知意。如果修改成和成员变量相同的名字,会触发Java程序当中的就近原则会把方法中的变量变成形参变量,导致赋值失败,所以采用this关键字来解决,变量重名的问题。
this的含义
1.this代表的是所在类的当前类的引用(地址值)即对象对自己引用
备注:意思就是方法被哪个对象调用,方法中的this指代的就是代表的是哪个对象,即谁调用this就是谁
this使用的格式
1.this的变量名
使用this关键字修饰方法当中的成员变量,解决成员变量被隐藏的问题
//1.使用private关键字修饰成员变量
private String name;
private int age;
//2.提供相应的getXxx()放法和setXxx()方法
//可以访问类中的成员变量
//getXxx()获取类中的成员变量信息
public String getName(){
return name;
}
//getXxx()设置类中的成员变量
public String setName(String name){
this.name = name;
}
//getXxx()获取类中的成员变量信息
public int getAge(){
return age;
}
/tXxx()设置类中的成员变量
public void setage(String age) {
age=age;
}
封装优化2_构造方法
当一个对象被创建的时候,构造方法用来初始化对象,给对象的成员变量赋初始值
备注:无论你是否在封装类里定义构造方法,当类被定义出来的时候,系统会自动分配一个构造方法----无参的构造方法,一旦在类中显式定义构造方法,Java自动提供的默认的无参构造就会被自动销毁(被回收)
构造方法定义格式
修饰符 构造方法(参数列表){
//方法体内容
}
//构造方法没有返回值,构造方法名和类名要保持完全的一致
注意事项:
1.构造方法的方法名必须要与类名保持一致
2.构造方法不用声明返回值类型,void也能不需要
3.构造方法中不能用return返回一个具体值
4.如果定义类时没有显式的定义构造方法,系统会给一个默认的无参构造方法
5.一旦定义了一个构造方法,那么编译期会回收提供的隐式构造方法
6.构造方法可以重载:方法名相同,参数列表不同