首页 > 其他分享 >JTCR-深入了解方法和类-05

JTCR-深入了解方法和类-05

时间:2024-04-18 14:57:51浏览次数:16  
标签:JTCR String 05 对象 int static 参数 深入 方法

方法重载

一个类中存在多个同名方法,这些方法的形参类型或数量不同的现象称为方法重载。同名方法的返回值类型在判断是否构成重载时不予考虑。方法重载是支持多态的方式之一。

当调用同名方法时,Java 根据传入方法的实参类型、数量和顺序确定某个唯一精确匹配的方法,然后调用该方法;如果没有找到匹配的方法,Java 会将传入的实参进行自动类型转换,然后根据转换后的实参来精确匹配某一方法;如果此时仍然没有匹配的方法,则报错。

重载方法的目的是将需处理的数据类型不同,逻辑相同的多个方法命名为同一个方法,提供通用性。

重载构造器和重载其他方法没有本质区别。

深入了解参数传递

在 Java 中,只有按值传递。当传递一个类类型变量给方法形参时,是将该变量的值赋给了方法形参。该变量的值表示所引用对象的地址,即实参与形参同时引用这个对象,方法中通过形参进行的操作会影响到所引用的对象。

返回对象

在某个方法内创建对象并返回该对象时,如果对该对象的引用存在,即使该方法执行完毕后运行栈被回收,该对象依然存在。当该对象没有任何引用时,则会在垃圾回收执行时销毁,内存被回收。

介绍访问控制

public:修饰的成员可以被任何地方的代码访问。
private:修饰的成员只能被类中的方法访问。
无修饰符:成员默认为 package 级别,可以被同一个包中任意地方的代码访问。

理解 static

static 成员在类实例化之前可以被访问。当加载一个类时,该类中的 static 变量会初始化、static 块中的语句会执行。在类外访问 static 成员时,只需要通过 ClassName.member[()]([]表示里面的内容可选,具体根据成员是变量还是方法而定)的方式访问。一个类的所有实例共享同一个 static 变量。

介绍 final

final 修饰的变量表示该变量是常量,值不能被修改。final 变量在定义时赋初值或者在构造器中赋初值。
final 也可以修饰方法参数列表中的变量和局部变量。前一种方式目的是防止变量的值在方法中被修改。后一种方式目的是防止值被修改。

再访数组

数组是作为对象实现的。所有数组都有一个名为 length 的成员变量,用于记录当前数组中元素的个数。

介绍嵌入和内部类

在一个类中定义的类称为嵌入类。例如,在类 A 中定义一个类 B,此时 B 称为嵌入类。B 可以访问 A 中的成员,包括私有成员,而 A 不能访问 B 中的成员。
static 修饰的嵌入类不能直接访问包含它的类(外部类)中的非 static 成员,必须通过对象访问。
非 static 修饰的嵌入类称为内部类(inner class),内部类可以访问外部类中的所有成员。
内部类的实例只能在外部类的上下文(也就是外部类的作用域)中创建,否则编译器报错。

可以在方法中甚至 for 循环中定义嵌入类。

探究 String 类

所有字符串都是 String 类型的对象。String 对象不可修改。对应的 StringBufferStringBuilder 类型可以修改。

创建 String 对象最简单的方式为

String s = "abc";

使用 + 号可以连接两个 String 对象。
String 对象提供了 equals() 方法判断两个 String 对象是否相等(首先判断是否是同一个对象,如果不是同一个对象则判断内容是否相同)。
length() 方法获得对象中字符个数。
charAt() 方法获取指定索引位置的字符。

使用命令行参数

命令行参数从程序名后面第一个参数开始算起。

变长参数 varargs

// 表示 a 方法可以接收 0 或多个参数, v 隐式为 type[] 变量。
void a(type ... v)

当方法中有变长参数时,参数列表中可以有非变长参数,此时变长参数必须位于参数列表的最后面。当传参时,先按顺序匹配非变长参数,匹配完后,剩下的参数匹配变长参数。参数列表中只能存在一个变长参数。

具有变长参数的方法可以重载。

//  4 个重载方法
// 传入 int 实参数量大于等于 2 时调用
a(int ...v)
a(boolean ...v)
// 传入一个 int 实参时调用
a(int v)
a(String s, int ...v)
a(int ...v)
a(int n, int ...v)
// 产生二义性错误,变长参数可为空
a(1);

b(int ...v)
b(boolean ...v)
// 产生二义性错误,变长参数可为空
b();

参考

[1] Herbert Schildt, Java The Complete Reference 11th, 2019.

标签:JTCR,String,05,对象,int,static,参数,深入,方法
From: https://www.cnblogs.com/xdreamc/p/16357318.html

相关文章

  • JTCR-继承-06
    继承基础classA{inti;voidm(){//body}}classBextendsA{intk;voidn(){//body}}没有类可以成为其自身的超类(superclass)。子类不能访问超类中的private成员。超类类型变量可以引用派生自该超类的子类对象,但是使用该变量只......
  • JTCR-介绍类-04
    类基础类表示一个新的数据类型。简单类的一般形式:classClassName{typeinstanceVariable;//...typemethod(parameterList){//方法体}//...}有些Java应用不需要main方法。定义对象new操作符在运行时动态地给一个对象分配内存并返回指向该......
  • JTCR-数据类型、变量和数组-01
    原始类型Java是强类型语言,在编译时会检查所有变量、表达式的类型是否兼容。Java为数据定义了8种原始类型(primitivetype),分为4组:整型:byte、short、int、long,表示整数。浮点数:float、double,表示小数。字符:char,表示字符集中的元素。Boolean:boolean,表示true/false值。......
  • JTCR-运算符-02
    算术运算符算术操作符不能对boolean类型使用,可以对char类型使用,因为char类型是int类型的子集。除操作符对整数使用,结果为整数。取模运算符对整数和浮点数使用,都返回余数。在某些情况下,复合赋值操作符比它的等价形式更有效率。位运算符运算符运算结果~按位......
  • 深入分析C++对象模型之移动构造函数
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。C++11新标准中最重要的特性之一就是引入了支持对象移动的能力,为了支持移动的操作,新标准引入了一种新的引用类型——右值引用,右值引用一......
  • 051、宣州谢朓楼饯别校书叔云
    051、宣州谢朓楼饯别校书叔云唐●李白弃我去者昨日之日不可留,乱我心者今日之日多烦忧。长风万里送秋雁,对此可以酣高楼。蓬莱文章建安骨,中间小谢又清发。俱怀逸兴壮思飞,欲上青天览明月。抽刀断水水更流,举杯销愁愁更愁。人生在世不称意,明朝散发弄扁舟。 【现代诗意译】......
  • 05-智能调度-调度任务
    1.智能调度在神领物流项目中,采用智能调度的方式对车辆任务、快递员的取派件任务进行调度管理,这样更加有效的进行管理,降低企业运营成本。1.1为什么需要调度?可能你会这样的疑问,用户下单了,快递员上门取件,取件后送回网点,网点有车辆运走,再经过车辆的一系列的运输,最后进行派件,对方......
  • 【爆款推荐】初中中考阅读理解难题一网打尽!句子结构深度解析+答案揭秘,助你轻松冲刺高
    PDF格式公众号回复关键字:ZKYDT005原文1WhatisHelen’job?解析1What什么Helen’jobHelen的工作,Helen的工作是什么?2Asyoucansee,IhavemanybusinessEnglishlessons.as连词,正如或像的意思,you主语,你,cansee谓语,能够看见I主语我,have有,manybusin......
  • 29天【代码随想录算法训练营34期】第七章 回溯算法part05 (491.递增子序列 * 46.全排
    491.递增子序列如果在最前面加一个uset=set(),这个就是给这一层一个usedset,很好用,不错classSolution:deffindSubsequences(self,nums:List[int])->List[List[int]]:result=[]self.backtracking(nums,[],result,0)returnresult......
  • 05-视图类的选择以及认证
    如何选择视图类?视图类如何选择场景举例APIView不会和数据库打交道,不会用到序列化类。发送短信接口,发送邮件接口GenericAPIView需要和数据库以及序列化类打交道,就需要继承它。注册,登录5个视图扩展类单独某一个功能接口(注意:需要搭配GenericAPIView一起使用)单......