带参数方法
【1】无参数,无返回值
void 方法名(){方法体;}
【2】无参数,有返回值
int 方法名(){方法体;}
【3】有参数,无返回值
void 方法名(int num){方法体;}
【4】有参数,有返回值
int 方法名(int num){方法体;}
可变参数与数组参数的区别
【1】可变参数传参灵活,,可以无参,可以多个参数,可以数组;
数组参数只能传递数组
【2】可变参数必须放在最后
数组可以放在任意位置
【3】可变参数只能有一个;
数组参数可以有多个。
递归算法
递归:程序调用自身的算法。
条件:1.调用方法本身。
2.出口
嵌套for循环 和 用递归实现 的比较
栈 主要是用来存放栈帧的,每执行一个方法就会出现压栈操作,所以采用递归的时候产生的栈帧比较多,递归就会影响到内存,非常消耗内存,而使用for循环就执行了一个方法,压入栈帧一次,只存在一个栈帧,所以比较节省内存。
封装
封装定义:隐藏对象的属性和实现细节,仅对外提供公共的访问方式。
使用封装的好处
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
1 public class Husband { 2 3 /* 4 * 对属性的封装 5 * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性 6 */ 7 private String name ; 8 private String sex ; 9 private int age ; 10 private Wife wife; 11 12 /* 13 * setter()、getter()是该对象对外开发的接口 14 */ 15 public String getName() { 16 return name; 17 } 18 19 public void setName(String name) { 20 this.name = name; 21 } 22 23 public String getSex() { 24 return sex; 25 } 26 27 public void setSex(String sex) { 28 this.sex = sex; 29 } 30 31 public int getAge() { 32 return age; 33 } 34 35 public void setAge(int age) { 36 this.age = age; 37 } 38 39 public void setWife(Wife wife) { 40 this.wife = wife; 41 } 42 }
方法重载
在一个类中,方法名相同,参数列表(个数,顺序,类型)不同。与返回值无关。
作用:方便记忆和使用。
重载方法不同的方式
在java中重载方法有三种方式,它们分别是:
- 通过改变参数的数量
- 通过更改数据类型
- 通过改变参数排列顺序
注意:在java中,只通过更改方法的返回类型来实现方法重载是不可以的。
构造器
系统会自动创建一个构造方法(构造器)默认构造。
如果没有显示的定义构造器,那么系统会自动定义一个构造器,叫默认构造器。
可以显示定义构造器,只要显示定义了构造器,那么系统调用的是显示定义的构造器
无参构造,只能在创建对象的时候才能调用
注意:1.没有任何返回值
2.名字和类名必须一致
作用:初始化对象。
构造器和访问器的区别
1.构造器 创建完对象,所有的属性都初始化完成、
访问器不能。
2.构造器 创建对象的时候初始化,可以一次给所有属性初始化
访问器需要在创建对象后,逐个调用赋值
3.创建对象后,想要修改属性值那么需要用访问器。
构造器和普通方法的区别
1.构造器就是用来初始化对象的。
普通方法是为了完成某个特定的功能
2.构造器只能在创建对象的时候调用new
普通方法在使用的时候可以随意调用,不调用就不执行
初始化对象
1.成员变量默认初始化
2.声明处初始化或构造块初始化
3.构造器初始化
构造块
定义:在类中
class 类名{ { 构造块: 作用:解决构造器中的属性值相同,代码重用的问题。 } }
本类构造器调用
this();//