java中一个类中没有公共的构造方法,则说明不能让外界去new对象。

简介: java中一个类中没有公共的构造方法,则说明不能让外界去new对象。  * java中一个类中没有公共的构造方法,则说明不能让外界去new对象。  *    有以下几种情况:  *    A:成员全部是静态的(如:Math类,Arrays数组工具类,Collections集合工具类)  *...

java中一个类中没有公共的构造方法,则说明不能让外界去new对象。

 
 

  * java中一个类中没有公共的构造方法,则说明不能让外界去new对象。
  *    有以下几种情况:
  *    A:成员全部是静态的(如:Math类,Arrays数组工具类,Collections集合工具类)
  *    B:单例设计模式(如:Runtime运行时类)
  *    C:类中有静态方法返回该类的对象(如:InetAddress)
  *     示例:
  *     class Demo {
  *        private Demo(){} // 有私有构造方法,没有公有构造方法
  *
  *       public static Demo getXxx() {
  *         return new Demo(); // 返回该类对象
  *       }
  *       }

注意:ToolKit抽象工具包类,有公共构造方法,但是该抽象类中也有静态方法返回该抽象类的子类对象。如下:
 *   Toolkit抽象类的方法:该类中有静态方法返回该抽象类的子类对象
 *     public static Toolkit getDefaultToolkit() 获取默认工具包,返回值是Toolkit类的子类对象
      // 获取工具包类对象
      Toolkit tk = Toolkit.getDefaultToolkit();
 示例代码如下:
1
package cn.itcast_01; 2 3 import java.net.InetAddress; 4 import java.net.UnknownHostException; 5 6 /* 7 * 8 * 看InetAddress类的成员方法: 9 * public static InetAddress getByName(String host) 根据主机名或者IP地址的字符串表示得到IP地址对象 10 */ 11 public class InetAddressDemo { 12 public static void main(String[] args) throws UnknownHostException { 13 // public static InetAddress getByName(String host) 14 // InetAddress address = InetAddress.getByName("DESKTOP-TEE3ASS"); 15 InetAddress address = InetAddress.getByName("192.168.1.102"); 16 17 // 通过IP地址对象获取:主机名、IP地址 18 // InetAddress类的成员方法:public String getHostName() 获取主机名 19 String name = address.getHostName(); 20 // InetAddress类的成员方法:public String getHostAddress() 获取IP地址 21 String ip = address.getHostAddress(); 22 System.out.println(name + "---" + ip); 23 } 24 }

 

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
2月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
164 57
|
1天前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
22 15
|
16天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
2月前
|
存储 缓存 安全
java 中操作字符串都有哪些类,它们之间有什么区别
Java中操作字符串的类主要有String、StringBuilder和StringBuffer。String是不可变的,每次操作都会生成新对象;StringBuilder和StringBuffer都是可变的,但StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此性能略低。
67 8
|
2月前
|
存储 安全 Java
java.util的Collections类
Collections 类位于 java.util 包下,提供了许多有用的对象和方法,来简化java中集合的创建、处理和多线程管理。掌握此类将非常有助于提升开发效率和维护代码的简洁性,同时对于程序的稳定性和安全性有大有帮助。
80 17
|
2月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
2月前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
140 4
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
89 2
|
2月前
|
Java 程序员 数据库连接
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
本文详细介绍了Java中的初始化块,包括静态初始化块和非静态初始化块的概念、执行顺序和实际应用场景。通过具体示例,帮助读者理解这两种初始化块的区别和使用场景,让面试官对你刮目相看。
41 0
Java执行顺序大揭秘:静态块、非静态块和构造方法谁先谁后?
|
2月前
|
Java
在Java中定义一个不做事且没有参数的构造方法的作用
Java程序在执行子类的构造方法之前,如果没有用super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。解决办法是在父类里加上一个不做事且没有参数的构造方法。