类的属性
变量:1,按照数据类型来分基本数据类型,引用数据类型
2,按照变量在类中声明的位置不同:成员变量(属性)、局部属性(方法内,构造器内,代码块内等)就比如人按照性别来分,以及按照年龄来分
局部变量和成员变量的异同
相同点:
变量的格式相同
:变量类型 变量名= 变量值;
变量都有有效的作用域
:作用域都是离该属性最近的大括号,出了作用域就失效了
变量先初始化,在使用
无论局部变量还是成员变量都有默认值
3、生命周期
(1)实例变量:和对象的生命周期一样,随着对象的创建而存
在,随着对象消亡而消亡, 而且每一个对象的实例变量是独立的。
(2)局部变量:和方法调用的生命周期一样,每一次方法被调用而在存在,随
着方法执行的结束而消亡, 而且每一次方法调用都是独立。
类的方法使用
方法
是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数
或过 程。
将功能封装为方法的目的是,可以实现代码重用,减少冗余,简化代码
Java 里的方法不能独立存在,所有的方法必须定义在类
里。
. Math.random()的 random()方法
– Math.sqrt(x)的 sqrt(x)方法
– System.out.println(x)的 println(x)方法
– new Scanner(System.in).nextInt()的 nextInt()方法
– Arrays 类中的 binarySearch()方法、sort()方法、equals()方法
1、声明方法的语法格式
[修饰符] 返回值类型 方法名([形参列表])[throws 异常列表]{
方法体的功能代码
}
返回值类型:
表示方法运行的结果的数据类型,方法执行后将结果返回到调用者。
– 无返回值,则声明:void
– 有返回值,则声明出返回值类型(可以是任意类型)。与方法体中“return
返回值”搭配使用
关于方法体中 return 语句的说明:
return的作用
作用一:用于方法的结束,也就是说如果有返回值的方法,这个return是放在该方法的最后一行代码;
作用二:结束一个方法的同时,可以将一个数据返回给调用者,(如果方法有返回值类型,则搭配return使用
方法的重载(overload)
7.1.1 概念及特点
方法重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即
可。满足这样特征的多个方法,彼此之间构成方法的重载;
总结:
相同:在同一个类里,方法名相同
不同:参数列表不同(参数的类型不同,参数的顺序不同,参数的个数不同)
注意:和参数的名字没有关系
2.6 练习:测试方法的重载
创建包: cn.tedu.method
创建类: TestMethodOverload.java
package cn.tedu.method;
/**本类用于测试方法的重载*/
public class TestMethodOverload {
public static void main(String[] args) {
/**1.我们根据方法名+参数列表确定具体调用哪个方法*/
/**2.方法的重载:
* 在同一个类中,存在方法名相同,但参数列表不同的方法
* 如果在同类中,同名方法的参数个数不同,一定构成重载
* 如果在同类中,同名方法的参数个数相同,
* 需要查看对应位置上参数的类型,而不是参数名,与参数名无关
* (int a,String b)与(int b,String a)--不构成重载
* (int a,String b)与(String a,int b)--构成重载
* */
//2.调用method()
method();
//4.调用method(int)
method(666);
//6.调用method(int,String)
method(888,"泡泡");
}
//1.创建一个无参的method()
public static void method() {
System.out.println("哈哈哈哈我没参数");
}
//3.创建一个method(int n)
public static void method(int n) {
System.out.println("哈哈哈哈我的参数是:"+n);
}
//5.创建一个method(int n,String s)
public static void method(int a,String b) {
System.out.println(b+"今晚要干他"+a+"碗大米饭");
}
public static void method(String a,int b) {
System.out.println(b+"今晚要干他"+a+"碗大米饭");
}
}
递归方法
(图片里面有图片)
递归方法调用
:方法自己调用自己的现象就称为递归。
递归的分类
: 直接递归、间接递归
直接递归:方法自身调用自己。
public void methodA(){
methodA();
}
间接递归:可以理解为 A()方法调用 B()方法,B()方法调用 C()方法,C()方法调用 A()方法。
public static void A(){
B();
}
public static void B(){
C();
}
public static void C(){
A();
}
说明:
递归方法包含了一种隐式的循环。
递归方法会重复执行某段代码,但这种重复执行无须循环控制
递归必须有停止的条件否则就变成了无穷递归,停不下来,类似于死循环
public class AddRecursion {
public static void main(String[] args) {
System.out.println(sum(100));
}
public static int sum(int n) {
if (n == 1) {
return 1;
} else {
//在这里注意:n=2的时候2+sum方法的结果当n=2的时候sum的结果是1
return n + sum(n - 1);
}
}
}