首页 > 编程语言 >Java学习总结——方法

Java学习总结——方法

时间:2024-12-09 16:00:44浏览次数:9  
标签:总结 Java String 构造方法 学习 Person 参数 方法 public

Java学习总结——方法

1.什么是方法,如何定义?

方法是语句的集合,在一起用于实现某一功能,包含于类或对象中。

方法的定义:修饰符 方法返回类型 方法名(参数列表){若干方法语句; return 返回值}

2.方法参数

方法可以包含0个或任意个参数。方法参数用于接收传递给方法的变量值。调用方法时,必须严格按照参数的定义一一传递。

	class Person {
		        ...
		        public void setNameAndAge(String name, int age) {
			        ...
		    }
	}

//调用这个setNameAndAge()方法时,必须有两个参数,且第一个参数必须为String,第二个参数必须为int

Person Jimmy = new Person();
Jimmy.setNameAndAge("slipy",47);

可变参数(不定项参数)

可变参数用 参数类型 ... 来定义,相当于数组。
一个方法只能指定一个可变参数,不定项参数必须是参数列表的最后一项。

class Group {
		      private String[] names;

		      public void setNames(String... names) {
			    this.names = names;
		    }
	}
	Group Lawers = new Group();
	Lawers.setNames("Jimmy","Kim","Howard");

3.构造方法

用于对实例进行初始化的方法,实例在创建时会通过new操作符调用构造方法。

构造方法的名称就是类名。构造方法的参数没有限制,在方法内部,也可以编写任意语句。但是,和普通方法相比,构造方法没有返回值(也没有void),调用构造方法,必须用new操作符。
如果一个类没有定义构造方法,编译器会自动为我们生成一个默认构造方法,它没有参数,也没有执行语句。果我们自定义了一个构造方法,那么,编译器就不再自动创建默认构造方法

public class Main {
		public static void main(String[] args) {
			Person p = new Person("Xiao Ming", 15);
			System.out.println(p.getName());
			System.out.println(p.getAge());
		}
	}

	class Person {
		
	}

4.方法重载

特征:在同一个类中多个方法采用同一个方法名,但是参数不同。
用途:例如对一个实例进行初始化采用构造方法时,可以对默认的无参构造方法进行overload以传入属性,根据几种可能传入属性的个数不同的情况,重载几种不同的构造方法来对实例初始化。

5.Java的参数绑定

值传递(pass - by - value)机制

  • 基本数据类型:

    • 当基本数据类型(如intdoubleboolean等)作为方法参数时,传递的是该数据的一个副本。
    • 这意味着在方法内部对参数的修改不会影响到方法外部原始变量的值。
  • 引用类型数据

    • 当引用数据类型(如对象、数组等)作为方法参数时,传递的是对象的引用(即内存地址)的副本。

    • 这意味着在方法内部可以通过这个引用访问和修改对象的属性。但是,如果在方法内部重新赋值引用本身,不会影响到方法外部的引用。

           class Person {
               String name;
               public Person(String name) {
                   this.name = name;
               }
           }
      
           public class Main {
               public static void main(String[] args) {
                   Person person = new Person("Alice");
                   modify(person);
                   System.out.println(person.name); // 输出为"Bob"
               }
      
               public static void modify(Person p) {
                   p.name = "Bob";
                   // 如果这里重新赋值,如p = new Person("Charlie");,则不会影响main方法中的person
               }
           }
      
  • String类型

    • 当对String对象进行操作(如拼接、替换等)时,实际上会创建一个新的String对象。在上述modify方法中,虽然传入的是String引用的副本,但由于尝试对其赋值新的String值,实际上是让方法内的引用指向了一个新创建的String对象,而不会影响到方法外部的String引用。

           public class Main {
               public static void main(String[] args) {
                   String str = "Hello";
                   modify(str);
                   System.out.println(str); // 输出仍然是"Hello"
               }
      
               public static void modify(String s) {
                   s = "World";
               }
           }
      

标签:总结,Java,String,构造方法,学习,Person,参数,方法,public
From: https://www.cnblogs.com/YeziMa/p/18595187

相关文章

  • 2025 年你应该告别的 5 个 JavaScript 库
    2025年你应该告别的5个JavaScript库来源:OSCHINA编辑: 白开水不加糖2024-12-0915:03:58 2AI总结干不动了伙计们,老板说每天导它个5000App下载TheNewStack 发文梳理了他们认为在2025年可能过时的5个JavaScript库,分别是:jQuery、Moment.js、Lod......
  • [Javascript] Create Smooth UI Transitions with the Native View Transitions API
    Inthislesson,you'lllearnhowtoimplementsmoothstatetransitionsinyourwebapplicationsusingthebrowser'sbuilt-inViewTransitionsAPI.We'llcreateasimpleexamplethatdemonstrateshowtoanimatebetweendifferenttextstates......
  • PLI 学习
    PLI学习介绍参考文献:VerilogPLI已死(可能),SystemVerilogDPI当立_sutherlandhdl-CSDN博客下面的表格非常详细的讲述了DPI和VPI的区别,总结一下:DPI不是VPI的超集,两个不能完全替代DPI适合verilog和c相互传递数据,互相调用的场景。VPI最早为EDA工具开发,可以实现对设计数......
  • 探索 Java 中的类和主方法
    如果你是Java新手,了解类和特殊方法publicstaticvoidmain是编写任何程序的关键。让我们以一种实用而直接的方式来探讨它们的工作原理!(SpringBoot/Cloud项目实战:java567.com)Java中的类是什么?类是Java程序的构建块。它们充当蓝图,包含执行特定任务的方法(或函数)。想象你正......
  • 【Java编程】深入解析 Java 的四大引用类型:强引用、软引用、弱引用、虚引用
    在Java内存管理中,引用的概念扮演着非常重要的角色。引用的强弱程度,直接影响对象在内存中的生存周期。Java语言中定义了四种不同的引用类型:强引用、软引用、弱引用和虚引用,每一种引用类型都有独特的特性和适用场景。理解它们的区别和作用,不仅有助于提升Java内存管理的水平,也有......
  • Top Cluster 树分块入门学习笔记
    定义树簇(Cluster):将树上的边划分为若干个连通块,称为树簇。界点、内点:每个树簇内有两个界点,其他点为内点,满足两个树簇至多交于一个界点。簇路径:对于每个树簇,其内部两个界点之间的路径为簇路径。由于这里不是学习TopTree的地方,所以舍去了某些其他内容。树簇分块给定......
  • [Javascript] Assignment question
    vara={n:1};varb=a;a.x=a={n:2};console.log(a.x);//undefinedconsole.log(b.x);//{n:2} Javascriptseethefollowingcode,mainlywilldo3things1.Locate aaddressreferenceinstack2.Create {n:1}inheap3.Assignaddressrefere......
  • Java-21 深入浅出 MyBatis - 手写ORM框架2 手写Resources、MappedStatment、XMLBuilde
    点一下关注吧!!!非常感谢!!持续更新!!!大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html目前已经更新到了:MyBatis(正在更新)框架实现在当前的项目中,在resources下新建:sqlMapConfig.xmlmapper.xmlsqlMapConfig.xml<?xmlversion="1.0"encoding="U......
  • 【深度学习】图片数据处理和清洗
    数据清洗是数据处理的一项重要步骤,对于深度学习算法至关重要,通常在采集到大量数据进行标注训练前需要做一些数据清洗工作。数据清洗一般包含以下方法:一.去除重复和冗余样本在采集到的数据样本中,可能会存在大量重复或高相似度样本,这些数据可能会导致模型过拟合、降低模......
  • 强化学习:基于课程学习的强化学习算法 —— 《Combining Reward Shaping and Curriculu
    地址:https://www.tesble.com/10.1109/ICTC.2018.8539438我们在四种不同的奖励函数和终止条件下对行走者进行了训练,以评估结合奖励塑形和课程学习的效果。具体如下。1)距离稀疏奖励:行走者到达目标时给予1个奖励,否则为0。2)距离课程奖励:给予行走者的奖励与行走者距离稀疏奖励......