Java 25天基础-DAY 05-面向对象-this关键字

简介: Java 25天基础-DAY 05-面向对象-this关键字

一、this关键字
/*
this关键字:看上去,是用于区分局部变量和成员变量同名的情况。

this为什么可以解决这个问题?
this到底代表的是什么呢?
this的特点:

this代表的是本类的对象,到底代表那一个呢?
this代表他所在函数所属对象的引用。
也就是那个对象在调用this所在的函数,this就代表那个对象。

this的应用:

当定义类中的函数时,该函数内部要用到调用该函数的对象时,这时this来表示这个对象,
但凡本类函数内部使用了本类对象,都用this表示。

*/
class Person
{

private String name;
private int age;
Person(int age)
{
    this.age=age;//谁调用this代表谁,这里代表p1
}

Person(String name)//为了让变量名有意义,将变量名n改成name但是输出结果为null.
{
    this.name=name;
}

Person (String name,int age)
{
    this (name);

//构造函数中的函数调用。只能放在构造函数的第一行。因为初始化要先执行。
//这个this调用的是上面的函数,代表p(name)


//  this.name = name;
    this.age = age;
}
public void speak()
{
    System.out.println("name="+name+",,age="+age);
}
/*
    需求:给人定义一个用于比较年龄是否相同的功能,也就是是否是同龄人。
*/

public boolean compare (Person p)//返回一个布尔型的数据
{
    return this.age==p.age;//谁调用代表谁,这里代表p1
}

}
class gzhs2
{

public static void main(String[] args) 
{
//    Person p =new Person("赵四");
//    Person p1 =new Person("刘能");
//    p.speak();
//    p1.speak();
    Person p1 = new Person(20);
    Person p2 = new Person(22);
    boolean d = p1.compare(p2);
    System.out.println(d);

    Person p = new Person ("赵四");
    p.speak();

    test t = new test ("赵四");
    

}

}
_
二、this关键字的应用
this_
三、 this关键字在构造函数间的调用

构造函数中的函数调用。只能放在构造函数的第一行。因为初始化要先执行,当
这个this调用的是上面的函数,代表p(name)
注意不要来回调用,避免出现死循环。
this()只能用在构造函数间,不能用在不同函数中。
使用场景:
只暴露一个构造函数提供给客户使用,隐藏构造函数内的其他初始化值。下图只调用了Person(String name,int age)这个构造函数。
this_

目录
相关文章
|
21天前
|
存储 缓存 Java
Java 并发编程——volatile 关键字解析
本文介绍了Java线程中的`volatile`关键字及其与`synchronized`锁的区别。`volatile`保证了变量的可见性和一定的有序性,但不能保证原子性。它通过内存屏障实现,避免指令重排序,确保线程间数据一致。相比`synchronized`,`volatile`性能更优,适用于简单状态标记和某些特定场景,如单例模式中的双重检查锁定。文中还解释了Java内存模型的基本概念,包括主内存、工作内存及并发编程中的原子性、可见性和有序性。
Java 并发编程——volatile 关键字解析
|
4天前
|
JSON Java 数据挖掘
利用 Java 代码获取淘宝关键字 API 接口
在数字化商业时代,精准把握市场动态与消费者需求是企业成功的关键。淘宝作为中国最大的电商平台之一,其海量数据中蕴含丰富的商业洞察。本文介绍如何通过Java代码高效、合规地获取淘宝关键字API接口数据,帮助商家优化产品布局、制定营销策略。主要内容包括: 1. **淘宝关键字API的价值**:洞察用户需求、优化产品标题与详情、制定营销策略。 2. **获取API接口的步骤**:注册账号、申请权限、搭建Java开发环境、编写调用代码、解析响应数据。 3. **注意事项**:遵守法律法规与平台规则,处理API调用限制。 通过这些步骤,商家可以在激烈的市场竞争中脱颖而出。
|
21天前
|
缓存 安全 Java
Java volatile关键字:你真的懂了吗?
`volatile` 是 Java 中的轻量级同步机制,主要用于保证多线程环境下共享变量的可见性和防止指令重排。它确保一个线程对 `volatile` 变量的修改能立即被其他线程看到,但不能保证原子性。典型应用场景包括状态标记、双重检查锁定和安全发布对象等。`volatile` 适用于布尔型、字节型等简单类型及引用类型,不适用于 `long` 和 `double` 类型。与 `synchronized` 不同,`volatile` 不提供互斥性,因此在需要互斥的场景下不能替代 `synchronized`。
2137 3
|
1月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
27 1
|
2月前
|
JavaScript 前端开发 Java
java中的this关键字
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。自学前端2年半,正向全栈进发。若我的文章对你有帮助,欢迎关注,持续更新中!🎉🎉🎉
59 9
|
2月前
|
设计模式 JavaScript 前端开发
java中的static关键字
欢迎来到瑞雨溪的博客,博主是一名热爱JavaScript和Vue的大一学生,致力于全栈开发。如果你从我的文章中受益,欢迎关注我,将持续分享更多优质内容。你的支持是我前进的动力!🎉🎉🎉
57 8
|
2月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
28 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
2月前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
52 4
|
2月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
47 2
|
3月前
|
Java 程序员
在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。
【10月更文挑战第13天】在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。本文介绍了Java关键字的基本概念及其重要性,并通过定义类和对象、控制流程、访问修饰符等示例,展示了关键字的实际应用。掌握这些关键字,是成为优秀Java程序员的基础。
42 3