iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > html >java中的This关键字和单例模式是什么
  • 900
分享到

java中的This关键字和单例模式是什么

2024-04-02 19:04:59 900人浏览 八月长安
摘要

这篇文章主要介绍“java中的This关键字和单例模式是什么”,在日常操作中,相信很多人在java中的This关键字和单例模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解

这篇文章主要介绍“java中的This关键字和单例模式是什么”,在日常操作中,相信很多人在java中的This关键字和单例模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java中的This关键字和单例模式是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

 一、this关键字

1.假设在类定义int类型成员变量年龄age,在构造方法使用的是a(age=a),这样造成可读性比较差,所以需要将一个类中表示年龄的变量统一的命名,都声明为age。此时当成员变量和局部变量名一样导致在构造方法中无法访问对象的其他成员。,这时候在java程序中引用了这个this关键字。

2.this关键字可以为调用了方法的那个对象生成相应的地址,从而获得了对调用本方法的那个对象的引用。当方法需要访问类的成员变量时,就可以使用this引用指明要操作的对象。

3.解决成员变量和局部变量的名一样,我们可以使用this关键字去访问一个类的成员变量。

例如:

public class Person1 { public String name;//成员变量--年龄 public int age;//成员变量--年龄 public Person1(String name, int age){         this.name = name;//为name属性赋值         this.age = age;//为age属性赋值 } //say()方法 public void say(){     System.out.println("你好!我是" + this.name + ",今年" + this.age + "岁。"); } public static void main(String[] args) {     // TODO Auto-generated method stub     Person1 p1 = new Person1("李华", 20);//创建第一个对象     Person1 p2 = new Person1("小名", 19);//创建第二个对象     p1.say();//调用对象的方法     p2.say();//调用对象的方法     } }

输出的结果是:

你好!我是李华,今年20岁。 你好!我是小名,今年19岁。

上面代码中,构造方法的参数定义为(String name,int  age),它是一个局部变量,在类中定义了成员变量name和age,如果在构造方法使用name和age访问的是局部变量,在构造方法使用this.name和this.age的访问的是成员变量。

4.通过this关键字调用成员方法:

public class Person1 { public String name;//成员变量--年龄 public int age;//成员变量--年龄 public Person1(String name, int age){         this.name = name;//为name属性赋值         this.age = age;//为age属性赋值 } //print()方法 public void print() { System.out.println("************************"); } //say()方法 public void say(){ this.print();//调用方法     System.out.println("你好!我是" + this.name + ",今年" + this.age + "岁。"); } public static void main(String[] args) {     // TODO Auto-generated method stub     Person1 p1 = new Person1("李华", 20);//创建第一个对象     Person1 p2 = new Person1("小名", 19);//创建第二个对象     p1.say();//调用对象的方法     p2.say();//调用对象的方法     } }

输出的结果是:

************************ 你好!我是李华,今年20岁。 ************************ 你好!我是小名,今年19岁。

上面代码中,通过this关键字调用成员方法,写了一个print()方法在say()放在中调用成员方法并输出。5.构造方法在实例化对象时被java虚拟机(JVM)自动调用,在程序不能像调用其他方法去调用构造方法,可以在构造方法中使用this([参数1,参数2,...,参数n])的方式来调用其他的构造方法。

例如:

public class Person2 { public String name; public int age; //定义无参的构造方法 public Person2(){     System.out.println("无参构造方法被调用...."); } //定义两个有参的构造方法 public Person2(String name,int age){     this();//调用无参的构造方法     this.name=name;     this.age=age;     System.out.println("你好!我叫"+this.name+"今年"+this.age+"岁!");      } public static void main(String[] args) {     // TODO Auto-generated method stub     Person2 p=new Person2("李华",19);//实例化Person2对象     } }

输出的结果是:

无参构造方法被调用.... 你好!我叫李华今年19岁!

上面代码中,在实例化Person2对象后,调用了两个有参的构造方法,在这个方法中调用了无参的构造方法,并打印出”无参构造方法被调用....”,在实例化Person2对象中传入了参数的值,最后输出”你好!我叫李华今年19岁!”,这两个构造方法都被调用了。

二、单例模式

1.什么是单例模式

单例模式是:一个类当中只有一个实例,并且提供一个访问它的全局访问点。

2.单线程中,单例模式根据实例化对象时机不同,由两种经典实现分别是饿汉式单例和懒汉式单例。

3.饿汉式单例定义类的静态私有变量同时进行实例化

饿汉式单例案例:

public class Singleton { // 自己创建一个对象 private static Singleton singleton = new Singleton(); // 私有的构造方法 private Singleton(){  } // 提供返回这个对象的静态方法 public static Singleton getInstance() {     return singleton; } public static void main(String[] args) {     // TODO Auto-generated method stub     Singleton s1=Singleton.getInstance();     Singleton s2=Singleton.getInstance();     System.out.println(s1==s2);     } }

输出的结果是:true

从上面的代码中,声明静态私有类变量,并且立马实例化,实例化一次。类的构造方法中使用private修饰,这样就不能在类的外部使用new来创建实例化对象。私有的构造方法,是为了防止外部实例化,如果想让类的外部获取类的实例对象,提供public中的getInstance()方法获取单例实例。

4.懒汉式单例就是延迟加载,等到需要使用的时候去创建实例,不是主动创建。

懒汉式单例案例

public class Singleton1 { //声明私有变量 private static Singleton1 singleton1 = null; // 私有的构造方法 private Singleton1() { } //提供返回这个对象的静态方法 public static Singleton1 getInstance() {     //被动创建,真正需要使用时才去创建     if (singleton1 == null) {     singleton1 = new Singleton1();     }     return singleton1; } public static void main(String[] args) {     // TODO Auto-generated method stub     Singleton1 s1=Singleton1.getInstance();     Singleton1 s2=Singleton1.getInstance();     System.out.println(s1==s2);     } }

输出的结果是:true

从上面的代码中,单例实例被延迟加载,只要真正需要用到的时候才会实例化一个对象交给自己使用。

三、总结

本文主要介绍了this关键字、单例模式。

this关键字可以为调用了方法的那个对象生成相应的地址,从而获得了对调用本方法的那个对象的引用。当方法需要访问类的成员变量时,就可以使用this引用指明要操作的对象。

单例模式是一个类当中只有一个实例,并且提供一个访问它的全局访问点。通过饿汉式和懒汉式案例来理解这个单例模式的用法。希望大家通过本文的学习,对你有所帮助!

到此,关于“java中的This关键字和单例模式是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: java中的This关键字和单例模式是什么

本文链接: https://www.lsjlt.com/news/79334.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中的This关键字和单例模式是什么
    这篇文章主要介绍“java中的This关键字和单例模式是什么”,在日常操作中,相信很多人在java中的This关键字和单例模式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • this关键字和单例模式是什么
    这篇文章主要讲解了“this关键字和单例模式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“this关键字和单例模式是什么”吧!一、this关键字1.假...
    99+
    2024-04-02
  • java中this关键字的作用是什么
    在Java中,this关键字代表当前对象的引用。它的主要作用有以下几点:1. 表示当前对象:在类的方法中,this关键字可以用来引用...
    99+
    2023-08-31
    java
  • java中this关键字的用法是什么
    在Java中,this关键字用于表示当前对象的引用。它可以用于以下几种情况:1. 使用this调用类的构造函数:当一个类中有多个构造...
    99+
    2023-09-15
    java
  • Java中的this关键字
    介绍 this关键字用于引用当前实例,在Java语言中,当创建一个对象后,Java虚拟机就会为其分配一个指向对象本身的指针,这个指针就是“this”。 Java关键字this只能用于方法方法体内,在类...
    99+
    2023-10-20
    java 开发语言
  • Java中this关键字有什么用
    这篇文章主要介绍了Java中this关键字有什么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。this 关键字this 关键字代表了所属函数的调用者对象。this 关键字的...
    99+
    2023-06-27
  • Java中super和this关键字详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2024-04-02
  • C# 中this关键字的作用是什么
    这篇文章给大家介绍C# 中this关键字的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以下是 this 的常用用途:◆限定被相似的名称隐藏的成员◆将对象作为参数传递到其他方法◆声明索引器C# this关键字...
    99+
    2023-06-17
  • Java的this和super关键字怎么用
    本文小编为大家详细介绍“Java的this和super关键字怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java的this和super关键字怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、“ t...
    99+
    2023-06-30
  • JavaScript中的this关键字是什么及怎么用
    今天小编给大家分享一下JavaScript中的this关键字是什么及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。例子...
    99+
    2023-06-26
  • Java中关键字是什么
    这篇文章将为大家详细讲解有关Java中关键字是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。关键字定义:被Java语言赋予特殊含义,用做专门用途的字符串特点:关键字中...
    99+
    2024-04-02
  • Java this关键字的使用案例详解
    目录Boy类Girl类BoyGirlTest类总结通过一个小案例来学习、理解一下this关键字的使用~~~ Boy类 package myjava1; public class B...
    99+
    2024-04-02
  • java中this关键字怎么使用
    这篇文章主要介绍了java中this关键字怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中this关键字怎么使用文章都会有所收获,下面我们一起来看看吧。this 的使用:修饰属性和方法,也可以理...
    99+
    2023-06-26
  • Java中this和super关键字的使用详解
    目录父类空间优先于子类对象产生super和this的含义super和this的用法继承的特点父类空间优先于子类对象产生 在每次创建子类对象时,先初始化父类空间,再创建其子类对象本身。...
    99+
    2022-11-13
    Java this super关键字 Java this关键字 Java super关键字
  • kotlinobject关键字单例模式实现示例详解
    目录正文一、 匿名内部类二、单例模式三、伴生对象1、深入分析伴生对象2、用伴生对象实现工厂模式3、用伴生对象实现单例模式(1)、借助懒加载委托(2)、伴生对象 Double Chec...
    99+
    2023-01-12
    kotlin object关键字单例模式 kotlin object
  • Java单例模式与破坏单例模式的概念是什么
    本文小编为大家详细介绍“Java单例模式与破坏单例模式的概念是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java单例模式与破坏单例模式的概念是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是单例...
    99+
    2023-07-05
  • JavaScript中this关键字有什么用
    本篇内容主要讲解“JavaScript中this关键字有什么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript中this关键字有什么用”吧!与...
    99+
    2024-04-02
  • Java类中this关键字与static关键字的用法解析
    目录前言1:修饰属性,表示调用类中的成员变量。2:this修饰方法3:this表示当前对象的引用前言 今天给大家总结介绍一下Java类中this关键字和static关键字的用法。 t...
    99+
    2024-04-02
  • Java中异步编程的关键字和存储方式是什么?
    随着互联网的普及和应用场景的不断扩大,异步编程逐渐成为开发人员必须掌握的技能之一。Java作为一门流行的编程语言,也支持异步编程。在本文中,我们将探讨Java中异步编程的关键字和存储方式。 一、异步编程的概念 异步编程是一种编程方式,其中...
    99+
    2023-07-25
    异步编程 关键字 存储
  • Java关键字和API在分布式系统中的作用是什么?
    随着信息技术的不断发展,分布式系统已经成为了现代软件开发中不可或缺的一部分。在分布式系统中,Java作为一种通用的编程语言,具有很高的灵活性和可移植性,因此得到了广泛应用。在本文中,我们将探讨Java关键字和API在分布式系统中的作用。 ...
    99+
    2023-10-23
    关键字 分布式 api
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作