第7单元 面向对象
7.1 面向对象的思想
-+
7.2 定义类
实体类:com.xszx.beans (定义类)
测试类:com.xszx.test//必须写main方法
7.2.1 类的成员
属性和方法
7.2.2 属性
属性:类自带的一些特性
属性的创建:修饰符 数据类型 属性名
注意:
\1. 属性也就是变量(成员变量) 也叫全局变量
\2. 一般不需要赋值
public class Review { public String name; public char sex; public int age; public String job; private double sal; private int chinese;//私有类 必须在实力类中用set 和 get 赋值调用 public int english;}
7.2.3 方法
方法:行为
方法的声明
方法的基本语法:
修饰符 返回类型 方法名(形参列表){
//功能代码
}
注意:
方法中定义变量称为局部变量。
如果没有返回值,则方法的返回类型必须为void
当方法有具体的返回类型时,则必须使用return语句返回一种值。
设计方法时,只需要抓住两个要素:
\1) 是否有返回值
\2) 是否需要参数
/*public int num(int... arr) {// public + 数据类型+方法名 必须要有返回值 int nu = 0; for (int i = 0; i < arr.length; i++) { nu += arr[i]; } return nu; }*/
public void setSal(double a){//public + void +方法名 不需要返回值 但在测试类和附参数 时必须注意数据类型 sal=a; }
7.3 对象的创建
对象类型 名字 = new 类
Review r=new Review(); //必须写在main方法里面
7.3.1 访问属性和方法
对象.属性/方法
7.3.2 方法的重载
在一个类中允许出现相同的方法名,但是同名方法的参数类型或者参数个数不能一样
public void pri(int a) { System.out.println(name); } public void pri(int a,int b){ System.out.println(name); } public void pri(int a,int b,int c){ System.out.println(name); }
7.3.3 方法可变参数
1.修饰符 返回类型 方法名(数组类型[] 数组名){
方法体
}
修饰符 返回类型 方法名(数组类型... 数组名){
方法体
}
public int num(int... arr) {//实例类中写 数据类型...数组名 的方式 可以在对象类中直接写入数据 int nu = 0; for (int i = 0; i < arr.length; i++) { nu += arr[i]; } return nu; }
int a= r.num(1,5,6,87,96); //对象类中 对于上述方法的调用 可以直接在方法中添加数据 System.out.println("这几个数的和:"+a);
7.4 标准实体类
标准实体类:
\1. 私有属性
private double sal; private int chinese;
\2. 公有的方法
\1) set属性名首字母大写 设置成员值 有参数 没有返回值
\2) get属性名首字母大写 获取成员值 没有参数 有返回值
//用set 和get 方法来用私有属性 //在实体类中的用法如下 public void setSal(double a){ sal=a; } public double getSal(){ return sal; }
//在对象类中的用法如下 r.setSal(9520.3); double c= r.getSal(); //千万要注意数据类型 System.out.println("工资为:"+c);
7.5 构造方法
是用来初始化对象内部状态的特殊方法
*语法:*
访问修饰符 方法名(){}
说明:访问修饰符一般用public 方法名固定,都是类名
*特征:*
1.在Java语言中,每个类都至少有一个构造方法
2.虚拟机为每一个类默认提供一个空参构造方法,如果程序的设计者手 动提供带参构造方法,那么原来默认提供的空参构造方法失效
//底下这段代码就是虚拟机为每一个类创造的空参构造方法 public Review(){ } public Review(int a){//当我写了这段代码时 上面默认的空参构造方法立即失效 }
3.构造方法的主要作用是完成对类对象的初始化工作
4.构造方法不能由编程人员显式地直接调用
5.构造方法没有返回类型
6.构造方法的方法名与类名相同