您的位置 首页 java

在问题中学java(一)——this用法

新建了个OneCavans类 构造函数 如下

public OneCanvas() {

width = this.getWidth();

height = this.getHeight();

System .out.println(“width:” + width);

System.out.println(“height” + height);

System.out.println(“hasPointerEvents:” + this.hasPointerEvents());

System.out.println(“hasPointerMotionEvents:”

+ this.hasPointerMotionEvents());

System.out.println(“hasRepeatEvents:” + this.hasRepeatEvents());

System.out.println(“isDoubleBuffered:” + this.isDoubleBuffered());

cmd = new Command[8];

cmd[0] = new Command(“Line”, Command.OK, 1);

cmd[1] = new Command(“Arc”, Command.OK, 1);

cmd[2] = new Command(“FillArc”, Command.OK, 1);

cmd[3] = new Command(” Rect “, Command.OK, 1);

cmd[4] = new Command(“RoundRect”, Command.OK, 1);

for (int i = 0; i < 5; i++) {

this.addCommand(cmd[i]);

}

this.setCommandListener(this);

请问最后一行里的最后一个this是指的什么呢,再有在测试类中:

public class OneCanvasMid extends MIDlet {

OneCanvas ocs;

static OneCanvasMid inc;

public OneCanvasMid() {

inc = this;

ocs = new OneCanvas();

}

protected void startApp() {

System.out.println(“============startApp========”);

Display .getDisplay(this).setCurrent(ocs);

System.out.println(“############startApp########”);

}

inc=this,this是指前面的构造函数么?Display.getDisplay(this).setCurrent(ocs);又是什么意思呢?

答:

this没有什么特别的意思,就是当前对象的指针,它不会指构造函数。

第一问里最后一行的得最后一个this和前面的那个this意思是一样的,都是指正在构造的OneCanvas的对象,这行代码调用OneCanvas类的实例方法,并把自己当作参数传进去。

第二问:OneCanvasMid 类中定义了一个静态成员OneCanvasMid inc,inc = this自然就是将当前构造的OneCanvasMid 对象赋值给inc这个静态成员。(这样的效果就是inc总是最后一个被构造的OneCanvasMid 对象)

第三问和第一问基本是一个意思,调用Display类的貌似是 静态方法 getDisplay();并且把自己(OneCanvasMid 的实例)作为参数传进去。

本期问题: 编写程序求一元二次方程的根

上期答案:

import java .util. Scanner ;

public class HomeWork01 {

static int number =4; //输入4个数存放在数组中

static int[] t1 = new int[number];

public static void main(String[] args) {

HomeWork01 jiejie=new HomeWork01();

jiejie.shunxun();

}

void shunxun(){

System.out.println(“请输入4个数:”);

Scanner in_t1 = new Scanner(System.in);//循环输入数组

for(int i=0;i<number;i++){

t1[i]=in_t1.nextInt();}

for (int i = 0; i < t1. length ; i++) {

int pos = i;

for (int j = i + 1; j < t1.length; j++) {

if (t1[pos] > t1[j])

pos = j;

}

if (pos != i) {

t1[i] = t1[i] + t1[pos];

t1[pos] = t1[i] – t1[pos];

t1[i] = t1[i] – t1[pos];

}

}

for (int i = t1.length – 1; i >= 0; i–)

System.out.print(t1[i] + “\t”);

}

}

文章来源:智云一二三科技

文章标题:在问题中学java(一)——this用法

文章地址:https://www.zhihuclub.com/190305.shtml

关于作者: 智云科技

热门文章

网站地图