Java Eclipse 中 在类与方法调用中 (this)的用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Eclipse 中 在类与方法调用中 (this)的用法相关的知识,希望对你有一定的参考价值。

第一个类
public class Menu
Do shiyong = new Do();
public void erji()
System.out.println("\n\n\n\n\n\n\n\n\n\n\n\n\n");
System.out.println("\n***************************************************************************************************");
System.out.println("\t\t\t\t 1. 客 户 信 息 管 理\n");
System.out.println("\t\t\t\t 2. 购 物 结 算 \n");
System.out.println("\t\t\t\t 3. 真 情 回 馈\n ");
System.out.println("\t\t\t\t 4. 注 销 \n\n");
System.out.println("\n***************************************************************************************************");
System.out.println("请选择操作: ");
shiyong.erji(this);

第二个类 (被调用的类)
public class Do
public void erji(Menu Menu)
i = input.nextInt();
if(i==1)
Menu.sanji_1();
else if(i ==2 )
Menu.sanji_2();
else if(i ==3 )
Menu.sanji_3();
else if(i ==4 )
Menu.yiji();
else
System.out.println("输入有误");




以上两个代码为例 ,请问高手 第一个类中的最后一句话 shiyong.erji(this); 中为什么要用这个this 如果不是 是不是可以用其他东西代替???
还有就是 这个 this 是干嘛用的 ,我最近学的比较迷糊,Java学到了 类与方法,总是搞不清楚.....往说的详细一些 万分感谢....

this表示类实例本身。
this的用法
1、表示对当前对象的引用!
public class A
public A getA()
return this;//表示获取当前实例本身


2、表示类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!
public class A
private int a = 0;//位置1
public A getA(int a)
this.a = a;//前面this.a表示 位置1 的a,赋值=号右侧的表示参数a


3、用于在构造方法中引用满足指定参数类型的构造器。
public class A
public A(int a)

public A()
this(1);//这里调用自身的构造函数public A(int a)

参考技术A this这里指是当前类的一个实例,这里完全可以用new Menu()代替

当一个类中全局变量和局部变量重名时,通过this可以区分开:

如:
public class A

int i = 2 ; //qu ju bian liang

public void set(int i)
this.i = i; //这里左边是全局变量i,右边是方法参数i


public void f()
int i = 3 ;
System.out.println(i); //输出3
System.out.println(this.i); //输出全局变量(类变量)2


public static void main(String[] args)
new A().f();

本回答被提问者采纳
参考技术B this只能用在方法或构造方法中,用于获得调用当前的构造方法和方法的对象引用

public class DemoD
private int c,d;

DemoD(int a,int b) //构造方法
//这里用到了this意思是说将方法中声明的a参数传给左面前面声明的属性c
//主要是为了辨认属性,让代码增强可读性

this.c = a;
this.d = b;

public void add() //方法
//用this来表示当前的属性
//可以写成return a+b;

return this.a+this.b;





至于shiyong.erji(this);可以用new 类名();取代
参考技术C 你这两个类中有两个名字相同的erji方法,但其实他们没有任何关系,仅仅是名字一样而已,区分他们主要看参数,Do类中的erji方法有一个Menu类类型参数,所以调用时需要传一个Menu对象,正好你在Menu对象中调用,这时候就可以用this表示把本类作为参数传递过去。 参考技术D 在没回答你之前,我想说你最好还是找个老师给你讲讲,有些东西看很多天不如老师一节课

this只能用在方法或构造方法中,用于获得调用当前的构造方法和方法的对象引用

public class DemoD
private int c,d;

DemoD(int a,int b) //构造方法
//这里用到了this意思是说将方法中声明的a参数传给左面前面声明的属性c
//主要是为了辨认属性,让代码增强可读性

this.c = a;
this.d = b;

public void add() //方法
//用this来表示当前的属性
//可以写成return a+b;

return this.a+this.b;





至于shiyong.erji(this);可以用new 类名();取代

祝你自学成功

Python-类与类之间的相互调用

  • 类是现实世界在计算机中的反映,它将数据和对这些数据的操作封装在一起
  • 对象就是类的实例

在python设计语言中,跟其他类型的编程语言一样,可以直接使用class定义类,并且可以在类中定义方法,可以直接通过类来调用方法。下面利用一个实例说明类和类方法的定义和用法,操作如下:

class Car():
    def __init__(self,age):
        self.age = age

    def show_age(self):
        print("the age of the Car is " + str(self.age))
        A = People(3)
        A.People_money()

    def Car_big(self):
        print("666666~~~~")

class People():

    def __init__(self, age2):
        self.age2 = age2

    def show_cat_age(self):
        Ragdoll = Car(self.age2)
        Ragdoll.show_age()

    def People_money(self):
        print("-------------------------")

Husky = People(2)
Husky.show_cat_age()

在以上代码当中,People类调用了Car类,Car类调用了People

  • People类调用了Car类里面的show_age()这个方法
Ragdoll = Car(self.age2)
Ragdoll.show_age()
  • Car类里面的show_age()方法调用了People类里面的People_money()这个方法
A = People(3)
A.People_money()

结果

the age of the Car is 2
-------------------------

个人认为(python)

在自己写代码(python)的过程当中,对于私有、公有和保护这个没有正确的一个认知,特别是在内存空间的释放,这个在C++里面特别需要注意的,但是Python本身就是个流氓,但是我想这个跟他本身有关();python就是对库的调用,在程序运行的加载(或者说是的加载)过程当中,会占用较大的空间很不好;

注:以上纯属个人看法,如若违权请告知,立马修改

以上是关于Java Eclipse 中 在类与方法调用中 (this)的用法的主要内容,如果未能解决你的问题,请参考以下文章

java基础知识-11:抽象类与接口

《JAVA程序设计与实例》记录与归纳--类与对象

类与对象

Java深入分析类与对象

Eclipse查看某个方法被哪些类调用

java类与对象基本使用