首页 > 其他分享 >this关键字和static关键字的说明

this关键字和static关键字的说明

时间:2024-07-25 23:28:13浏览次数:10  
标签:name age PersonO 说明 关键字 实例 static public

1、this

  • this代表实例(或对象),也就是new的时候的实例
  • this.属性:使用属性
  • this.函数;调用方法

大部分时候我们在类中不需要不使用this,因为默认会有this加在属性或函数的前面,只是不显示不出来。如果方法中有局部变量和成员变量同名则必须哟啊使用this。

代码:

package org.example.面向对象;

public class PersonO {
    private String name;
    private int age;
    public String getName(){
        //return name;//这里隐藏了this
        return this.name;//和上面的写法没区别
    }
    public void setName(String name){
       this.name=name;//这里必须使用this,不然无法区分局部变量name
    }
    
    public static void main(String[] args){
        
        PersonO p=new PersonO();
        
        /*
        * 
        * 这里的p就是上面的this
        * 每个不同的实例,对应不同的this
        * 所以this就是实例
        * */
        p.getName();//调用getName()函数
    }
}

2、static

  • static关键字修饰的属性和方法,指的是静态属性和静态方法,如:private static int age'
  • 被static修饰的属性和方法为静态变量也成为类的变量,不是实例的变量,不能使用this关键字
  • static是类的属性,static方法是类的方法,不需要实例化即可使用,直接类.属性或者类》方法便可使用。
  • static方法可以调用其他static方法,但是不可以调用非static方法,因为非static方法是需要this的,但是static不可以使用this。
  • 非static方法可以调用static方法

代码:

package org.example.面向对象;

public class PersonO {
   
    /*static例子*/
    private String name;
    private static int age;
    
    //非静态方法,里面会有this
    public void sing(){
        name="p1";
        age=10;
    }
    
    //静态方法里面没有this,所以不能在里面调用非静态方法
    public static void dance(){
//        name="p";//这里没有默认的this所以会报错
        System.out.println("dance");
    }
    
    /*
    * 
    * 主方法就是static所以我们调用非static方法的时候必须new实例出来才能调用*/
    
    public static  void main(String[] args){
        //静态的,所以可以直接使用不需要实例
        dance();
        
        //静态的
        System.out.println(age);
        
        PersonO p=new PersonO();
        //非静态的,必须实例
        p.name="pp";
        
        //实例也可以使用静态的属性
        p.age=100;
        
        PersonO p2=new PersonO();
        p2.age=11;
        System.out.println("p2.age"+p2.age);
    }
    
    
}

总结:类的static不可以调用实例的this,但是实例的this可以调用类的static。

标签:name,age,PersonO,说明,关键字,实例,static,public
From: https://blog.csdn.net/2201_75709573/article/details/140701732

相关文章

  • java | final 关键字介绍
    在Java中,final关键字用于声明一个常量、不可改变的变量、方法或类。对于如privatefinalStringUtilstringUtil;这种情况,final关键字具有以下作用:final的作用不可重新赋值:final修饰的变量在初始化之后,不能被重新赋值。对于privatefinalStringUtilstringUtil;,这意味着一......
  • static final 的含义和作用
    在Java中,staticfinal结合使用具有特定的含义和用途:staticfinal的含义和作用static:static修饰符表示该字段或方法属于类本身,而不是类的实例。也就是说,static字段或方法被所有实例共享,而不是每个实例都有自己的副本。static字段或方法在类加载时初始化,并且在整个程序运行......
  • C++学习笔记-operator关键字:重载与自定义操作符
    在C++编程中,operator关键字扮演着极其重要且独特的角色。它允许开发者为内置类型或自定义类型重载或定义新的操作符行为。这一特性极大地增强了C++的表达能力,使得代码更加直观、易于理解和维护。本文将深入探讨C++中operator关键字的使用,包括操作符重载和自定义操作符的基本......
  • 关键字和保留字
    关键字定义:是被java赋予了特定含义的英文单词特点:所有字母都小写注意:java中的null不是关键字,和true、false类似,它是一个字面常量,不能作为标识符来进行使用具体可以参考官网:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html初学时并不需要一次性记......
  • 牛贝NIUBOX跟卖说明
    亚马逊跟卖,那么跟卖模式到底怎么解释才可以让大家简单明了。其实简单一点的话来理解就是“多个不同的卖家共用一个产品listing的页面”。众所周知亚马逊是一个重产品、轻店铺的电商平台,亚马逊认为出现在亚马逊平台上的所有产品Listing页面都是属于亚马逊所有的,即便是品牌备案,卖......
  • 何时使用static_cast、dynamic_cast、const_cast和reinterpret_cast
    在C++中,类型转换操作符static_cast、dynamic_cast、const_cast和reinterpret_cast各有其特定的使用场景。下面是每种类型转换操作符的基本用途和何时使用它们的指南:1. static_cast用途:主要用于基本数据类型之间的转换,以及有明确定义的类层次结构中的向上转换(派生类到基类)和......
  • 衣服的洗涤保养说明
    你认真读过衣服上的洗衣符号嘛?一般来说,主要有以下几类水洗基本符号是一个水盆漂白基本符号是一个三角形干燥自然干燥自然干燥也就是悬挂晾干,基本符号是一个正方形翻转干燥翻转干燥也就是烘干,正方形里面有个圆圈,也叫转笼翻转干燥圆点表示所允许的最高温度,一个圆点为......
  • 如果 MEDIA_URL 在 STATIC_URL 之内,即使设置不同,运行程序也无法提供媒体
    在我的服务器中,django和nginx部署在ECSFargate上并连接到负载均衡器,但URL是由Akamai传输的https://www.exmplae.com/company/playground/*->https://amazonloadbalancer/*所以,https://www.exmplae.com/company/playground/是浏览器中的网址。我在......
  • volatile 关键字的工作机制
    Author:ACatSmilingSince:2024-07-24volatile关键字:是Java编程语言中的一个重要工具,用于控制变量在多线程环境中的可见性和有序性。前置知识指令重排序指令重排序(InstructionReordering):是现代处理器和编译器优化技术的一部分,旨在提高程序执行效率。通过改变指令的执......
  • 实验说明 - ssti
    实验名称简单的ssti实验简介是一种针对服务器端模板的注入漏洞。实验说明攻击者将恶意代码输入到模板服务器在执行时未对恶意代码进行处理就输出执行将字符串当作模板执行ssti注入就是使其渲染我们想要执行的的字符串实验步骤步骤一:输入{{7*7}}判断类型步骤二:{{......