目录
1.this
当属性名和构造方法中的参数名发生同名的时候,就需要使用this关键字 本类对象
①this出现在构造方法中,代表的是这个构造方法创建的对象
②this出现在非静态方法中,代表的是调用这个方法的对象
2.重载
方法的重载:指的是一个类中可以定义多个同名的方法,但参数列表不同
参数列表:参数个数、参数的类型、对应位置的参数顺序
重载:两同一不同
注意:方法的重载与返回值类型、参数名字、访问修饰符无
public void method(){
System.out.println(this.name);
}
//参数 个数
public void method(int id){
}
//注意:我们在调用方法时,只需要关注方法名和参数列表
public int method2(int id){
return 0;
}
//参数类型
public void method(String name){
}
//参数顺序
public void method(int id,String name){
}
public void method(String name,int id){
}
构造方法的重载
构造方法与方法的重载一样,也能在同一类中定义多个同名的构造方法,必须参数列表不一样
public Student(){
}
public Student(int id,String name,int age){
//this
this.id = id;
this.name = name;
this.age = age;
}
public Student(int id,int age,String name){
}
3.局部变量和成员变量的区别
成员变量(全局变量) | 局部变量 | |
---|---|---|
定义的位置 | 类里面方法外面 | 方法和代码块里面,方法中参数也是局部变量 |
作用域范围 | 整个类 | 整个方法或代码块中,随着方法的执行结束而销毁 |
初始化 | 可以不赋值,有默认值 | 必须要手动赋值才能使用 |
内存存储区域 | 属于对象,对象存储堆中 | 栈 |
4.package(包)
在实际开发中由于一个大型软件项目由很多不同的文件、接口等组成,为了区分不同的功能模块,通常我们会将不同的代码存放到不同的目录或文件中。因此需要使用package的结构来分类存储,包还有一个功能就是可以防止重名。
包名:一般使用域名倒置写法 。例如:com.softeem.xxx com.baidu.xxx
包名全小写
5.import(导包)
一般情况下开发中涉及到多个类之间的互相调用,有可能这些类在不同的package包中,因此涉及到一些跨包访问的问题,所以在java中可以通过import关键字来将其他包的类导入到目标类中.
package 和import 的定义必须放在类的定义之前,顺序:package > import > class
6.递归方法
6.1概念
方法直接或间接调用方法本身,则该方法称为递归方法
6.2递归的三要素
边界条件、递归前进段、递归返回段
当边界条件不满足时,递归前进,当满足时,则递归返回
例如:
if(边界条件){
递归返回
}else{
递归前进
}
package com.softeem.method_;
/**
* @author zhengwen
* @create 2022-01-13 14:14
*/
public class MethodDemo {
public static void main(String[] args) {
//求10! 1*2*3*4*5*6*7*8*9*10
int result = 1;
for (int i = 1; i <=5 ; i++) {
result *= i;
}
System.out.println("result = " + result);
MethodDemo demo = new MethodDemo();
int fun = demo.fun(5);
System.out.println("fun = " + fun);
}
//使用递归方法
/*
返回值类型:阶乘的结果 int
参数:求几的阶乘 int类型
方法名:fun
5! = 5 * 4!
4! = 4 * 3!
3! = 3 * 2!
2! = 2 * 1!
1! = 1
*/
public int fun(int num){
if(num == 1){
return 1;
}else {
return num * fun(num - 1);
}
//return num * fun(num - 1);
/*
num=5 5 * fun(4)
num=4 4 * fun(3)
num=3 3 * fun(2)
num=2 2 * fun(1)
num=1
*/
}
}