类方法 实例方法 构造方法 this关键字

本文介绍了Java编程中的类方法、实例方法和构造方法的区别及使用规则。类方法由static修饰,可通过类名或对象调用,不能操作实例变量或调用实例方法。实例方法只能通过对象调用,this关键字在此类方法中代表调用方法的对象。构造方法用于初始化对象,this在构造方法中表示新建对象。理解这些概念有助于优化代码并避免不必要的内存消耗。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类方法:    

  1.用static修饰的是类方法.

  2.无论是实例方法还是类方法,在对象创建之后,都可以用“.”运算符调用这些方法。

  3.JAVA语言中,类中的类方法,在该类加载到内存时,就分配了相应的入口地址,所以类方法不但可以被任何对象调用执行,也可以直接通过类名调用,入口地址直到程序退出的时候才会被取消。

  4.因此JAVA语言允许通过类名直接调用类方法,而实例方法则不能通过类名调用。

  5.而且类方法不能操作实例变量,也不能调用实例方法,因为在类创建对象之前,实例成员变量没有分配内存,而且实例方法也没有入口地址。

  如果要在类方法中调用实例变量,可以先创建一个类的实例,然后通过实例访问该变量。

class NoStaticError{
      String a = "hello";
      public static void main(String[] args){
            NoStaticError b = new NoStaticError();
             System.out.println(b.a);
      }
}

   6.this表示某个对象,所以this关键字只能出现在实例方法和构造方法中。 

   7.如果一个方法不需要操作实例成员就可以实现某种功能,就可以考虑将这样的方法申明为类方法,这样可以避免创建对象浪费内存


实例方法:

  1.不用static修饰的是实例方法.

  2.实例方法只能通过对象来调用,而不能通过类名来调用。

  3.当this关键字出现在实例方法中时,代表正在调用该方法的当前对象.

     当实例成员出现在实例方法中时,默认格式:this.成员变量

    当类成员变量出现在实例方法中时,默认格式:类名.成员变量


    

构造方法:

   1.构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值,具有特殊的声明规则.方法名和类名相同且没有返回值。 一般用 new 构造方法名() 来创建该类的对象,构造方法是在对象一建立就 运行,给对象初始化。            

   2.当this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。

   3.程序员如果没有在JAVA类中提供构造方法,系统则会自动提供一个无参数的构造方法,这个构造方                      法为空,不做任何事情。所以JAVA类中至少含有一个构造方法。

   什么时候定义构造方法呢? 

   当分析食物时,该事物存在就具备一些特性或者行为,那么将这些内容定义在构造方法中

public class ConstructorTest
{
       public String name;
       public int age;
       public ConstructorTest(String name , int age)    //提供自定义的构造方法,构造器包含两个参数
     {
            //构造方法中的this代表它进行初始化的对象
            this.name=name;
            this.age=age;        //这两行代码将传入的2个参数赋给this代表对象的name和age实例变量
     }
     public static void main(String[] args)
     {
             //使用自定义的构造方法来创建对象
             //系统将对对象执行自定义的初始化
             ConstructorTest tc = new ConstructorTest("张三",23);     //对象一建立,就会调用与之对应的构造函数
             System.out.println(tc.name);
             System.out.println(tc.age);
     }
}


例子

public class Test{
public static void myMethod();//类方法
public void myMethod2();//实例方法
public Test(){}//构造方法,没有返回值,方法名与类名一样
}


this关键字:

person(String name)
{
        this.name = name;
}

this:看上去,是用于区分局部变量和成员变量同名情况。

this为什么可以解决这个问题呢?

this到底代表的是什么?

this:就代表本类的对象,到底代表哪一个呢?

         this代表它所在函数所属对象的引用。

         简单说:哪个对象在调用this所在的函数,this就代表哪个对象

this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。

class a
{
        person(String name)
       {
               this.name = name;
       }

       public void speak()
       {
            System.out.println("name="+name"...age"+age);  //System.out.println("name="+this.name"...age"+this.age)
       }
}

calss PersonDemo
{
         public static void main(String[] args)
         {
            person p =new person;
            person p1 = new person;
            p.speak();
            p1.speak();
         }
}
this语句:用于构造函数之间进行相互调用,不用用在一般函数中。

this语句只能定义在构造函数的第一行。因为初始化要先执行。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值