当前所在位置: 首页 > 旅游攻略 > 正文

java中this的作用

2023-10-31 admin 【 字体:

其实java中this的作用的问题并不复杂,但是又很多的朋友都不太了解java中的this是什么意思,因此呢,今天小编就来为大家分享java中this的作用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

  1. java中this的作用
  2. 在Java中的main方法中可以使用this关键字吗为什么
  3. Java中,包、块、类、对象、都什么意思啊,能举例子说明吗,初学者学习
  4. super在java中是什么意思

this就是当前类(MyDate)的一个代号。在setter()方法里最能体现。例如:publicclassTest{inti;publicvoidsetI(inti){this.i=i;}}setI()方法的参数名为i,Test类的属性也为i,所以在setI()方法中必须用this指定具体是哪一个i。this.i就代表了当前类(Test)的属性i。这样才可以通过setI()方法为属性初始化。

1、main方法是静态static,也就是在类加载的时候已经初始化化到内存,它的实例是类实例

2、this表示当前实例,main方法和this代表的是不同的实例。

3、this一般不能用在静态方法和静态模块中

4、最简单的原因就是编译不通过。

Java中对象或者被抽象成类,就是具有状态和行为.比方说,一个狗,可以比喻成一个对象,具有状态:颜色啊,大小啊.品种啊.有行为:吃饭,奔跑,玩耍等.为了能够让程序理解,就会把现实世界中的对象使用类来代替.

详细代码如下:定义了一个Dog类的状态和行为,对应类中的属性和方法.

在上面对象的基础上,我们来看看什么是块?

Java通常情况下会有4中代码块方式.

所有定义的类中,包含的方法体,就是普通的代码块.

每个类都至少会有一个构造方法,这个构造方法就是一个构造代码块.每次类被实例化,就会被调用.默认的构造方法为:

super();//这个是调用父类的构造方法.所有的类都有一个通用父类Object.

用static{}包含的代码片段,在类中的静态代码块只会执行一次。静态代码块优先于构造块执行。

System.out.println("thisisstaticcodeblock");

使用synchronized(){}包裹起来的代码块,在多线程程序下,对共享数据的读写操作是需要互斥进行的,否则会导致数据的不一致性。

Java中的包(package)也有些编程语言叫做命名空间.为什么会有这个东西呢,

如果有2个Java开发人员,现在要做商场系统,都有一个类名叫做GoodsService.这个时候,你在调用的时候,应该调用谁呢?需要让程序知道调用的是谁,才能正常的执行程序.

所以,为了解决这个问题,引入了包的概念.这里一版都会使用domain(也就是我们的域名反过来定义)

奋斗是每天都很难,可一年一年却很容易.

小沐学学学为你回答,感谢阅读.希望能给阅读的你带来一丝好运.

super在java的子类中指代父类引用

1、子类的构造函数如果要引用super的话,必须把super放在函数的首位

publicclassChecketextendsBase{

super();//调用父类的构造方法,一定要放在方法的首个语句

System.out.println("Checket");

publicstaticvoidmain(Stringargv[]){

如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为的语句,但是又用了super继承父类的构造方法。那么以前所做的修改就都回到以前了,就是说又成了父类的构造方法了。

2、在Java中,有时还会遇到子类中的成员变量或方法与超类(有时也称父类)中的成员变量或方法同名。因为子类中的成员变量或方法名优先级高,所以子类中的同名成员变量或方法就隐藏了超类的成员变量或方法,但是我们如果想要使用超类中的这个成员变量或方法,就需要用到super.

super.value();//不调用此方法时,super.name返回的是父类的成员变量的值null

System.out.println(super.name);

publicstaticvoidmain(String[]args){

为了在子类中引用父类中的成员变量name和方法value(),在代码中使用了super、super.name和super.value(),若不调用super.value()时,super.name返回父类成员变量默认值null,调用此方法时,super.value()方法把成员变量name赋值为China,再利用super.name调用父类的成员变量的值。

另外,要注意的是super.name调用的是成员变量的

super.value("失败");//不调用此方法时,super.name返回的是父类的成员变量的值null

System.out.println(super.name);

publicstaticvoidmain(String[]args){

此时,super.name返回的值是父类成员变量的值xianfan,而此时的super.value()方法是不起作用的。

publicstaticvoidprt(Strings){

publicclassChineseextendsPerson{

super();//调用父类构造函数(1)

super(name);//调用父类具有相同形参的构造函数(2)

this(name);//调用当前具有相同形参的构造函数(3)

publicstaticvoidmain(String[]args){

在这段程序中,this和super不再是像以前那样用“.”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你可以将它替换为“this.prt”(因为它继承了父类中的那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。

关于本次java中this的作用和java中的this是什么意思的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

阅读全文
友情链接