精华内容
下载资源
问答
  • 关键字this

    2014-11-05 15:03:53
    在学习java的时候就遇到了这个关键字this,刚开始理解的时候感觉特别困难啊,因为对面向对象的思想haibuxig

    在学习java的时候就遇到了这个关键字this,刚开始理解的时候感觉特别困难啊,因为对面向对象的思想还不习惯。感觉用了很久之后,对this的理解已经很彻底了,但我看了《Java编程思想》之后发现我错了,其实并不是我理解的那样。

    书上有一个例子

    public class Test {
    	
    	public static void main(String[] args) {
    		
    		Cat a = new Cat();
    		Cat	b = new Cat();
    		
    		a.peel(1);
    		b.peel(2);
    	}
    }
    
    class Cat
    {
    	void peel(int i)
    	{
    		//to do
    	}
    }

    如果只有一个peel方法,如何知道是被a还是被b所调用的呢?

    其实编译器做了一些手脚,它把“所操作对象的引用”作为第一个参数传递给peel()。

    a.peel(a,1);

    b.peel(b,2);

    大概就是这么个意思,所以在peel方法里面是可以知道是被谁调用的。但是由于是编辑器内部实现的,所有没有标识符,但是为此有一个专门的关键字:thisthis关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。用这句话来想的话很多问题都可以相通了。

    this的用法和其他对象引用并无不同。但如果在方法内部调用同一个类得另一个方法时,就不必使用this了,直接调用即可。在构造函数中经常使用this.arg = arg用来区别,当然不写也行。


    注:static方法中不存在this



    展开全文
  • 关键字 this

    2011-06-17 22:16:00
    1. 隐藏的实例变量需要使用关键字 this 来引用。 2. this 也可以用在构造方法中,以调用同一个类中的另一个构造方法。 转载于:https://www.cnblogs.com/jiangjh/archive/2011/06/17/2083982.html...

    1.   隐藏的实例变量需要使用关键字 this 来引用。

    2.   this 也可以用在构造方法中,以调用同一个类中的另一个构造方法。

    转载于:https://www.cnblogs.com/jiangjh/archive/2011/06/17/2083982.html

    展开全文
  • 1.关键字this:是指调用对象本身的引用名。可以用this关键字引用对象的实例成员,例如:下面的代码使用this来显示地引用对象的radius以及调用它的getArea()方法。但是this引用可以省略掉的。 public class Circle{...

    1.关键字this:可以理解为:当前对象  或 当前正在创建的对象。

    可以用this关键字引用对象的实例成员,例如:下面的代码使用this来显示地引用对象的radius以及调用它的getArea()方法。但是this引用可以省略掉的。

    public class Circle{
          private double radius;
          public double getArea(){
    
               return this.radius*this.radius*Math.PI;       
    
          }
          public String toString(){
       
                return "radius:"+this.radius+"area:"+this.getArea();
       
          }
    }

    注意:在引用隐藏数据域以及调用一个重载的构造函数的时候,this引用是必须的。

       1.1使用this引用隐藏数据域

        例如在数据域的修改器set 方法中,经常将数据域名用作参数名在这种情况下这个数据域在 set 方法中被隐藏为了给它设置新值,需要在方法中引用隐藏的数据域名。代码如下:

    public class F{
      private int i = 5;
     
      public void setI(int i){
         this.i = i;     //this.i调用    
      }
    }

       1.2使用this调用构造函数

       关键字this可以用于调用同一个类的另一个构造函数,代码如下:

    public class Circle{
        private double radius;
        
        public Circle(){
          this(1.0);   //this()调用另外一个构造方法
        }
        public Circle(double radius){
          this.radius = radius;
        }
    
    }

     注意:Java 要求在构造方法中,"this(形参列表)"必须声明在当前构造器的首行 。

    如果一个类中有n个构造器,则最多有 n - 1构造器中使用了"this(形参列表)",通常,无参数或参数少的构造方法可以用 this( 参数列表)调用参数多的构造方法.

     

    2.super 关键字可以理解为:父类的

    2.1.super调用属性、方法:
            我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super."
            特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用"super.属性"的方式,表明调用的是父类中声明的属性。
            特殊情况:当子类重写了父类中的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用"super.方法"的方式,表明调用的是父类中被重写的方法。


    2.2.super调用构造器:
           我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中声明的指定的构造器。
            "super(形参列表)"的使用,必须声明在子类构造器的首行!
           我们在类的构造器中,针对于"this(形参列表)"或"super(形参列表)"只能二一,不能同时出现。
           在构造器的首行,没显式的声明"this(形参列表)"或"super(形参列表)",则默认调用的是父类中空参的构造器:super()

     

     

    展开全文
  • 关键字this和static

    2019-03-01 16:16:05
    关键字this和static关键字this关键字static 关键字this 当成员变量和局部变量重名时,默认访问的是局部变量(就近原则),此时想要访问全局变量,就可以使用this关键字 this指代当前对象,所属方法的调用者 ...

    关键字this和static

    关键字this

    当成员变量和局部变量重名时,默认访问的是局部变量(就近原则),此时想要访问全局变量,就可以使用this关键字

    this指代当前对象,所属方法的调用者

    public class Demo {
    	public static void main(String[] args) {
    		//创建一个Person对象 并且初始化
    		Person person = new Person("小明",21,"男");
    		Person person2 = new Person("小红",22,"女");
    		person.eat();//结果为小明在吃东西,因为此时调用eat方法的是对象person,所以this.name就是person.name即"小明"
    		person2.eat();//结果为小红在吃东西,同上
    	}
    }
    
    class Person{
    	String name;
    	int age;
    	String sex;
    	public Person(){
    		System.out.println("使用无参构造函数对对象进行初始化");
    	}
    	public Person(String name,int age,String sex){//当传参的参数名与成员属性同名时用this指代当前对象
    		this.name= name;//就能理解为成员属性的name=传入的参数name
    		this.age = age;
    		this.sex = sex;
    		System.out.println("name:"+name+"\tage:"+age+"\tsex:"+sex);
    		System.out.println(name+":"+this);
    	}
    	public void eat(){
    		System.out.println(this.name+"在吃东西");
    	}
    }
    
    

    当一个类中出现多个有参构造方法,即出现了构造方法的方法重载,此时每个构造方法中都使用this.成员属性=属性名会显得太过繁琐,就可以使用this调用其他的构造方法

    class Cat{
    	String name;
    	String color;
    	String sex;
    	public Cat(){}	
    	public Cat(String name,String color){
    		this.name = name;
    		this.color = color;
    	}
    	public Cat(String name,String color,String sex){
    		this(name,color);//使用this调用其他的构造方法
    		this.sex = sex;
    	}
    }
    
    

    注意:
    1、使用this关键字调用构造函数时,必须是构造函数中的第一条语句
    2、使用this关键字调用构造函数时 千万不要形成循环结构

    关键字static

    static表示静态
    作用:在对象间实现共享

    被static修饰的属性方法被存放在方法区中
    静态成员变量和方法不需要依赖对象存在,所以可以使用类名直接访问

    1、非静态成员变量何时存在于内存中?
    当创建对象的时候,也就是说所有的非静态成员都是依赖于对象存在的

    2、静态成员变量何时存在于内存中?
    当类被加载时(类第一次被使用时)

    public class Demo {
    	public static void main(String[] args) {
    		Student stu1 = new Student("小明", "男");
    		Student stu2 = new Student("小王", "男");
    		stu1.test(stu2);//同属一个星球
    		stu1.study();//来自地球的小明正在努力学习
    		Student.planet = "火星";
    		stu2.study();//来自火星的小王正在努力学习
    		stu1.planet="月球";
    		stu2.study();//来自月球的小王正在努力学习		
    		Student.print();//被static修饰的成员方法可以通过类名直接调用
    	}
    }
    
    class Student{
    	String name;
    	String sex;
    	static String planet = "地球";//被static修饰的成员属性
    	public Student(){}
    	public Student(String name,String sex){
    		this.name = name;
    		this.sex = sex;
    	}
    	public Student(String name,String sex,String planet){
    		this.name = name;
    		this.sex = sex;
    		this.planet = planet;
    	}
    	public void study(){
    		System.out.println("来自"+this.planet+"的"+name+"正在努力学习");
    	}
    	public static void print(){
    		System.out.println("这是一个静态成员方法");
    	}
    	public	void test(Student s){	
    		if(this.planet.equals(s.planet)){
    			System.out.println("同属一个星球");
    		}	
    	}
    }
    

    静态成员变量和非静态成员变量的区别:
    1、存储位置
    静态成员变量存储在方法区
    非静态的存储在堆内存中
    2、生命周期
    非静态成员变量与对象共存亡
    静态成员变量在类加载时存在于内存中,程序结束时消失

    静态的优缺点:
    优点:
    1、数据可以在对象间进行共享,可以节省内存
    2、方便访问
    缺点:
    1、生命周期过长
    2、不方便控制访问 ( 所有静态成员变量一般都是常量)

    静态代码块
    特点:静态代码块只会在类加载的时候执行一次
    作用:启动定时任务,或者用来连接数据库

    static{
    	System.out.println("这是一个静态代码块");
    }
    

    注意:
    1、静态成员方法不是为了在对象间实现共享 ,而是方便调用,所以工具类的方法几乎都是静态的
    2、在静态方法中不能访问非静态的成员,因为静态方法不需要依赖对象调用,也就是在调用静态方法的时候,对象还不存在,也就意味着非静态的成员都不存在
    3、静态方法中不能使用this关键字,同理,this指代当前对象,静态方法不需要依赖对象,对象不存在时不能使用this

    展开全文
  • 关键字this引用

    2018-04-20 15:39:03
    关键字this引用要点提示:关键字this引用独享自身。他也可以在构造方法内部调用另一个类的其他构造方法。​ 关键字this是指向调用对象本身的引用名。可以用this关键字引用对象的实例成员。例如:下面a的代码使用this...
  • java 关键字this

    2018-10-11 23:59:15
    java关键字this1.关键字-this(this是什么) 1.关键字-this(this是什么) 在java中,this关键字比较难理解,但它的作用和它的单词意思很接近。 1.1. 它在方法的内部使用,即这个方法所属对象的调用 1.2. 它在构造...
  • 主要介绍了java中this的用法示例(关键字this),需要的朋友可以参考下
  • 1、关键字this用于调用本类对象,关键字super用于调用父类对象。 2、使用this调用本类其他构造器或使用super调用父类构造器时,this或super必须放在构造器的第一行,且一个构造器最多存在一个this或super。 3、如果...
  • 关键字this简述

    2019-07-29 11:37:20
    简述关键字this 一、this代表对当前对象的一个引用。 public class Student { String name; public void study() { System.out.println(this);//对当前对象的引用。 } public static void main(String[] ...
  • TyroneJava.关键字this

    2020-04-07 23:48:55
    这篇我来深入了解一下关键字this 我们都知道,this的作用是区分局部变量和成员变量,所以this不可以出现在类方法当中(不需要成员变量)。下面在构造方法和实例方法中再具体写一下。 构造方法 在构造方法中使用this...
  • 关键字this,static,final,super关键字this 关键字this 1.this表示调用本类属性 只要在类中访问类的属性,一定要加上this关键字 2.表示调用本类方法 a.调用普通方法 this.方法名(参数列表) 当有类的...
  • 使用关键字 this原因

    2019-02-17 00:25:30
    在 ECMAScript 中,要掌握的最重要的概念之一是关键字 this 的用法,它用在对象的方法中。关键字 this 总是指向调用该方法的对象,例如: var oCar = new Object; oCar.color = "red"; oCar.showColor =...
  • JAVA中关键字THIS和关键字SUPER图解 父类 package demo10; public class Fu { int num=10; public void method(){ System.out.println("父类方法"); } } 子类 package demo10; import java.util.zip....
  • javascript 关键字this

    2015-02-10 00:59:00
    1、函数的常用方法,this表示全局对象Global function test() { ...2、关键字this用在对象的方法中,this总是指向该方法的对象。 /* this用在sayName()方法中,在此环境中,this就等于oPerson。 * */ ...
  • Java中关键字this和super

    2021-03-17 18:23:59
    Java中关键字this和super的含义的. this 1是指示隐式参数的引用。 2是调用该类的其他构造器。 super 1是调用超类的方法。 2是调用超类构造器。
  • 一.this关键字代表什么 this代表当前对象的引用 有关this关键字的注意事项: 1.this代表当前对象的引用 2.在静态方法内部,不能够使用this(j静态不依赖于对象 ,而this代表对象的引用产生矛盾) 3. a.this通过点号 ...
  • java关键字this、super、static、final
  • PHP关键字this是指向当前对象的指针。我们将和大家一起结合一个范例来细细研究一下PHP关键字this的相关用法和具体功能体现。 <?php class UserName { //定义属性 private $name; //定义构造函数 function _...
  • 关键字this和super的用法一、Java中 this关键字 的用法1. 隐式参数的引用2. 调用该类的其他构造器二、Java中 super关键字 的用法1. 调用超类的方法2. 调用超类的构造器 一、Java中 this关键字 的用法 1. 隐式参数的...
  • Java关键字this和package的使用 一、关键字:this 1. 可以调用的结构:属性、方法;构造器 2. this调用属性、方法: this理解为:当前对象 或 当前正在创建的对象 在类的方法中,我们可以使用"this.属性"或"this....
  • 关键字 this this 的功能 在 ECMAScript 中,要掌握的最重要的概念之一是关键字 this 的用法,它用在对象的方法中。关键字 this 总是指向调用该方法的对象,例如: var oCar = new Object; oCar.color = "red"; ...
  • Java中关键字this的使用情况1、this是什么2、this调用属性、方法、构造器的示例2.1 this调用类内属性、方法2.1.1 在类的方法中调用this.方法,this.属性2.1.2 在类的构造器中调用this.方法,this.属性2.2 this调用类...
  • C#关键字this用法

    2018-04-10 21:31:22
    c#基础之this关键字,demo程序,具体见地址:http://www.cnblogs.com/imstrive/p/5539049.html
  • 和变量不同,关键字this没有作用域的限制,嵌套的函数不会从调用它的函数中继承this。如果嵌套函数作为方法调用,其this的值指向调用它的对象。如果嵌套函数作为函数调用,其this值不是全局对象(非严格模式下)就是...
  • 关键字this和$(this)的区别

    千次阅读 2017-09-21 09:21:52
    在each()方法中,关键字this和$(this)的区别 ???比如:对每个选中的p元素执行函数function(){} 我是该这样写: $("p").each(function(){ this.hover(function(){ }); }); 还是该这样写: $("p").each...
  • 说到关键字this,给我印象最深的地方就是在对成员变量进行封装的时候setter方法中书写this,如this.x=x等,这个地方是为了区分成员变量和局部变量,但this的用法远不止这一种,一起来看看: 1.在类的构造方法中书写...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,260
精华内容 10,504
关键字:

关键字this