方法补充 笔记分享

方法补充

1.方法的参数传递【面试题】

public class Demo{
    public static void main(String[] args){
        // 对象变量
        Student student = new Student();
        student.name = "雷锋";
        strdent.age = 23;
        // 局部变量
        int num = 34;
        
        Demo demo = new Demo();
        demo.method1(num);
        demo.method2(student);
        
        System.out.println(num); // 34
        System.out.println(student.age); // 24
    }
    
    // 方法1
    public void method1(int num){
        num++;
    }
    // 方法2
    public void method2(Student stu){
        stu.age++;
    }
}

基本数据类型: 作为方法参数传递时,传递的只是值,传递过去之后的新变量和之前的变量没有关系。

引用数据类型: 作为方法参数传递时,传递的是地址值,所以传递过去之后的新对象引用也是引用相同的内存空间,当其中一处进行更改,会引发所有对象引用内容的更改。

在这里插入图片描述
注:图片出自查老师

2.掌握类的构造方法

Scanner input = new Scanner(System.in); // ()是构造方法

构造方法: 创建、构建,类的对象的构建和创建的方法。当对象创建时都会被执行!

构造方法最重要的意义就是Java给我们提供了能够在对象的创建(生命周期)过程中添加代码的能力。

一般构造方法的应用都是用于一些基本信息的初始化(初始化方法)。

  • 每一个类默认情况下JVM都会分配一个无参构造
  • 构造方法没有返回值类型,方法名和类名完全相同
// 无参构造方法  
访问修饰符 类名(){ 
    
}
  • 构造方法分为带参方法和无参方法
// 带参方法可以极大的简化对象的创建和初始化赋值过程
访问修饰符  类名(形参列表){
    // 利用形参给成员变量进行赋值
}
public Student(String stuName,String stuClass) {
    name = stuName;
    classId = stuClass;
}
// 
Student stu1 = new Student("张三", "342");
Student stu2 = new Student("李四", "342");
Student stu3 = new Student("王五", "342");
  • 只要你自己创建任意一个构造方法,那么JVM就不再给你分配无参构造了。所以建议无论自己是否编写构造方法,都去手动编写一个默认的无参构造。

3.掌握this关键字

// 方法内的变量:局部变量
public Dog(String name,int age) {
    // 当局部变量名称和成员变量名称相同时,会采用就近原则
    this.name = name;
    this.age = age;
}

成员变量:对象变量、实例变量。

this代表着当前类的一个对象,谁在调用谁就是当前对象。

this作为一个对象,可以去调用属性,也可以调用方法。

this.name
this.printInfo();

但是如果要调用自身的构造方法,那么需要注意的是调用必须是在某个构造方法的有效代码(不包含注释)的第一行。

因为某个构造方法没有执行完毕时,那么属性是不存在的,对象也不存在。

public Dog(){
	this(10,20); // 调用自己的带参方法 
}

在这里插入图片描述

在这里插入图片描述

4.掌握成员变量和局部变量的区别【面试题】

成员变量:类中属性

局部变量:方法内变量

  • 定义的位置

    • 成员变量定义在类中方法外

    • 局部变量定义在类中方法内

  • 作用域的范围(生效的范围)

    • 成员变量可以被类中的方法所共用
    • 局部变量只能在定义的方法内使用
    • 当局部变量和成员变量同名时,会就近采用局部变量
  • 生命周期

    • 成员变量(实例变量)它是随着对象的创建而产生,随着对象的销毁而销毁
    • 局部变量 它是随着方法的压栈而产生,随着方法的弹栈而销毁
  • 初始值

    • 成员变量有初始值
    • 局部变量没有初始值,如果不赋值则不能使用

5.掌握方法重载(现象)

方法重载:发生在一个类中的,方法名相同,参数列表不同(个数、顺序、类型)的情况。与访问修饰符和返回值类型无关

方法重载的意义在于我们要定义相同功能的方法,不需要再花费大量时间去定义n种方法名,而且未来在调用时体验更佳。

如果没有方法重载:

例如println():

	printStr()

	printInt()

	printDouble()

	printFloat()

	...

	printa()

	printb()

使用时还需要记忆n种方法名。

在这里插入图片描述

在这里插入图片描述

方法重载为什么不能已返回值类型作为区分?【华为面试题】

  • 构造方法没有返回值

  • 带返回值类型的方法在调用的时候有可能用不上返回值,那是我们无法直观的分辨,JVM也无法分辨

    public int test1(){
    
    }
    
    public void test1(){
    
    }
    // ----------方法调用----------
    int a = test1();
    test1();
    
    // --------------方法调用--------------
    test1();
    test1();
    

注:笔记思路、图片来自查老师

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通;、本 3项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看ReadmE.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、资 1源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READMe.m文件(如d有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值