Java基础知识—类的深层结构

简介:

在Java中,可以在同一个类中定义两个或多个共享相同名称的方法,只要它们的参数声明不同就可以。当出现这种情况时,这些方法就被称为重载(overloaded),并且这一过程被称为方法重载(method overloading).方法重载也是Java支持多态性的方式之一。

当调用重载方法时,Java所使用参数的类型和/或数量决定了实际调用是哪个版本的方法。因此,重载方法在参数的类型和/或数量方法必须有所区别。虽然重载方法可以返回不同的类型,但是单靠返回类型不足以区分方法的多个版本。当Java遇到对重载方法的调用时,简单地执行方法形参与调用中所使用的实参相匹配的版本。

下面是一个演示方法重载的简单例子:

Java基础知识—类的深层结构

Java基础知识—类的深层结构

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

可以看出,test()方法重载了4次。第1个版本没有采用参数,第2个版本采用一个整型参数,第3个版本采用两个整型参数,第4个版本采用一个double参数。虽然第4个版本的test()方法还返回一个值,但是这与重载没有什么因果关系,因为返回类型在重载版本的判断中不起作用。

Java基础知识—类的深层结构

Java基础知识—类的深层结构

重载构造函数:

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

参数传入的深入分析:

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

请记住:

当将对象引用传递给方法时,引用本身是使用值调用传递的。但是,由于传递的值引用一个对象,因此值的副本仍然引用相应实参指向的同一个对象。如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

返回对象:

方法可以返回任意类型的数据,包括自己创建的类类型。例如下面的程序中,方法incrByTen()返回一个对象,在该对象中,a的值比调用对象中的a的值大10.

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

递归:

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

Java基础知识—类的深层结构

访问控制:

正如前天几天知识所说的,封装将操作数据的代码和数据链接起来。但是,封装提供了另外一个重要的特性:访问控制。通过封装,可以控制程序的哪些部分可以访问类的成员。通过控制访问,可以防止误用。例如,仅仅通过定义一套良好的数据访问方法,就可以防止对数据的误用。因此,如果类的实现正确的话,类就创建了一个可以使用的“黑匣子”,但是其内部工作不允许修改。

Java基础知识—类的深层结构

类中的 static

Java基础知识—类的深层结构

类中的 final

Java基础知识—类的深层结构

嵌套类 与 内部类:

Java基础知识—类的深层结构

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

相关文章
|
21天前
|
安全 Java 编译器
JAVA泛型类的使用(二)
接上一篇继续介绍Java泛型的高级特性。3. **编译时类型检查**:尽管运行时发生类型擦除,编译器会在编译阶段进行严格类型检查,并允许通过`extends`关键字对类型参数进行约束,确保类型安全。4. **桥方法**:为保证多态性,编译器会生成桥方法以处理类型擦除带来的问题。5. **运行时获取泛型信息**:虽然泛型信息在运行时被擦除,但可通过反射机制部分恢复这些信息,例如使用`ParameterizedType`来获取泛型参数的实际类型。
|
21天前
|
安全 Java 编译器
JAVA泛型类的使用(一)
Java 泛型类是 JDK 5.0 引入的重要特性,提供编译时类型安全检测,增强代码可读性和可维护性。通过定义泛型类如 `Box<T>`,允许使用类型参数。其核心原理是类型擦除,即编译时将泛型类型替换为边界类型(通常是 Object),确保与旧版本兼容并优化性能。例如,`Box<T>` 编译后变为 `Box<Object>`,从而实现无缝交互和减少内存开销。
|
4月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
219 58
|
3月前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
4月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
117 8
|
4月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
59 3
|
4月前
|
安全 Java
Java中WAIT和NOTIFY方法调用时机的深层解析
在Java多线程编程中,`wait()`和`notify()`方法的正确使用对于线程间的协调至关重要。这两个方法必须在同步块或同步方法中调用,这一规定的深层原因是什么呢?本文将深入探讨这一机制。
67 5
|
4月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
4月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
176 4
|
4月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
117 2

热门文章

最新文章