Java最新头歌实践:Java类和对象之this关键字,掌握这6大技能体系

面试准备+复习分享:

为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦

秋招|美团java一面二面HR面面经,分享攒攒人品

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

准备好了键盘我正在敲代码




在现实世界里,对象的一个方法依赖于另一个方法的情形很常见,例如,吃饭方法依赖于拿筷子方法。这种依赖都是同一个对象两个方法之间的依赖。因此,Java 允许对象的一个成员直接调用另一个成员,可以省略 this 前缀。也就是说,将上面的 run( ) 方法改为如下形式也完全正确。



public void run() {

jump();    

System.out.println("正在执行run方法");

}




大部分时候,一个方法访问该类中定义的其他方法、成员变量时,加不加 this 前缀的效果是完全一样的。



需要注意的是,对于 static 修饰的方法而言,可以使用类来直接调用该方法,如果在 static 修饰的方法中使用 this 关键字,则这个关键字就无法指向合适的对象。所以,static 修饰的方法中不能使用 this 引用。并且 Java 语法规定,静态成员不能直接访问非静态成员。



省略 this 前缀只是一种假象,虽然程序员省略了调用 WritingCode() 方法之前的 this,但实际上这个 this 依然是存在的。



this( ) 用来访问本类的构造方法,括号中可以有参数,如果有参数就是调用指定的有参构造方法。



下面定义一个 Student 类,使用 this( ) 调用构造方法给 name 赋值,Student 类的代码如下所示:



public class Student {

String name;    

// 无参构造方法    

public Student() {      

    this("张三");    

}    

// 有参构造方法    

public Student(String name) {  

    this.name = name;    

}   

public static void main(String[] args) {    

    Student stu = new Student();    

    System.out.println(stu.name);   

}

}




执行结果:



张三




注意:



*   this( ) 不能在普通方法中使用,只能写在构造方法中;

*   在构造方法中使用时,必须是第一条语句。



[]( )3.编程要求

=====================================================================



仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。



**测试说明**



平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。



* * *



开始你的任务吧,祝你成功!



[]( )3.1参考代码

----------------------------------------------------------------------



/**

  • 任务:编写一个商品结算的小程序

  • 类名为:Shop

*/

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

/********** Begin **********/

public class Shop {

// 定义该商品的两个属性:价格(double)和数量(int)

private  double price;

private int total;



// 将形参的值赋值给成员变量

public Shop(double price, int total) {

	this.price=price;

	this.total=total;

}



// 该方法实现计算价钱的功能,将计算结果返回,价钱 = 价格 * 数量

public double sum() {

	return price*total;

}

}

/********** End **********/




*   [任务描述]( )

*   [编程要求]( )

*   [测试说明]( )



* * *



**任务描述**



本关任务:定义一个完整的学生类,该类定义了学生的基本信息。



**编程要求**



仔细阅读右侧编辑区内给出的代码框架及注释,按照提示编写程序代码。



**测试说明**



平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。 可在右侧“测试结果”区查看具体的测试集详情。



* * *



开始你的任务吧,祝你成功!



[]( )3.2参考代码

----------------------------------------------------------------------



/**

  • 任务:定义一个完整的学生类,该类定义了学生的基本信息。

  • 类名为:Student

*/

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码

/********** Begin **********/

// 创建一个名为 Student 的公开类

public class Student {

// 定义学生的两个属性:姓名(name String)和年龄(age int)

private String name;

private int age;

// 获取学生年龄

public int getAge() {

    return age;

}

// 设置学生的年龄,将形参的值赋值给成员变量

public void setAge(int age) {

	this.age=age;

}

// 获取学生姓名

public String getName() {

    return name;

}

// 设置学生姓名,将形参的值赋值给成员变量

Java高频面试专题合集解析:

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

当然在这还有更多整理总结的Java进阶学习笔记和面试题未展示,其中囊括了Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构资料和完整的Java架构学习进阶导图!

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

更多Java架构进阶资料展示

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

阿里Java岗面试百题:Spring 缓存 JVM 微服务 数据库 RabbitMQ等

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

中…(img-eumZI9IF-1715430579331)]

[外链图片转存中…(img-yM5lyK1y-1715430579331)]

[外链图片转存中…(img-9wwhbaJT-1715430579331)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值