当前位置: 首页 > news >正文

wordpress语言包更新/昆山seo网站优化软件

wordpress语言包更新,昆山seo网站优化软件,网站设计日志,做邮轮的网站写在前面 Java课堂篇3_初识JMM、常量池简单理解(字符串常量池、静态常量池、大整型常量池) 下面主要记录一下this指针和static关键字修饰的类没有this指针等情况 目录 this关键字static关键字 开始 先来一个小栗子 Monkey类 import java.time.ZoneOffset;/*** author 司超…

写在前面

  • Java课堂篇3_初识JMM、常量池简单理解(字符串常量池、静态常量池、大整型常量池)

下面主要记录一下this指针和static关键字修饰的类没有this指针等情况


目录

  • this关键字
  • static关键字

开始

先来一个小栗子

  • Monkey类
import java.time.ZoneOffset;/*** @author 司超龙**/
public class Monkey {//静态成员变量private static String zoo = "花果山";//普通成员变量private String name;private int age;private double weight;public Monkey() {// TODO Auto-generated constructor stub}public Monkey(String name, int age, double weight) {super();this.name = name;this.age = age;this.weight = weight;}public int getAge() {return age;}public String getName() {return name;}public double getWeight() {return weight;}public static String getZoo() {return zoo;}public void setAge(int age) {this.age = age;}public void setName(String name) {this.name = name;}public void setWeight(double weight) {this.weight = weight;}public static void setZoo(String zoo) {Monkey.zoo = zoo;}//普通成员方法public void run(String name) {System.out.println(this.name +  " 跑起来了~~");}public void eat() {System.out.println(this.name + " 正在吃香蕉~~");}//静态成员方法public static void sleep() {System.out.println("我睡着了");}/*** 下面代码报错* @param name*//*public static execrise(String name) {System.out.println(this.name + " 在锻炼!!是一个自律猴~");}*/}
  • 测试Main类

public class ThisZhiZhen {public static void main(String[] args) {// TODO Auto-generated method stub//创建猴子aMonkey aMonkey = new Monkey("xiaosi",19,50);//创建猴子bMonkey bMonkey = new Monkey("si",20,51);//调用普通无参成员方法aMonkey.eat();bMonkey.eat();System.out.println("===========");//调用有参普通成员方法aMonkey.run(aMonkey.getName());bMonkey.run(bMonkey.getName());System.out.println("============");//分别使用类名、对象名,获取静态成员变量System.out.println(Monkey.getZoo());//使用对象名获取静态成员变量,虽然不算错,但是不建议System.out.println(aMonkey.getZoo());System.out.println(bMonkey.getZoo());//使用某一个对象名,修改静态成员变量,不能算错,但是不建议aMonkey.setZoo("开封动物园");//再次打印,发现全部改变System.out.println(Monkey.getZoo());System.out.println(aMonkey.getZoo());System.out.println(bMonkey.getZoo());System.out.println("==============");//使用对象名,调用静态成员方法,不能算错,但是不建议aMonkey.sleep();bMonkey.sleep();System.out.println("============");}}

在这里插入图片描述

由上面的代码我们可以看出来:

  • 对象名、类名都可以调用 静态无参成员方法,获取静态成员变量、设置静态成员变量(只不过是对象名调用不太建议,因为上篇博客也提到,static修饰的方法、属性,就属于这个类对象的了,不在属于实例化对象个体得了)
  • 对象名可以调用 无参、有参 普通成员方法,对于有参的成员方法调用,需要传入实例化对象的参数

我们都知道,每个实例化对象都有 属于 自己的 普通成员变量,这很容易理解,但是 那些普通的成员 方法呢?

是每个对象都有属于自己的一份呢,还是只有 类中的单独一份,或者这样说,每个实例对象堆区内存空间,是否都包含类内的普通成员方法呢?

答案当然是 只有一份,所有的实例对象调用的都是类内的方法

那么问题又来了,既然多个对象调用的是类内的同一个方法,那么怎么区分是哪个对象调用的呢?、

这就是this指针的功能了


一、this关键字

this关键字,也称为了this指针,就是指向实例化对象堆区的地址,类似的还有super关键字等

this指针可以理解为 就是 当前 使用者 的 一个 别名

因为实例对象可以有很多,理想状态每个实例对象都有相同的方法(技能),属性可能不太相同,因此只需要 把 个性的 特征单独存储,对于一致的方法(技能)就不需要在浪费空间,共享出来共所有实例对象需要时调用即可(封装)

这些共享的方法,就需根据this区分不同的调用者,看下面代码

public void eat() {System.out.println(name + " 正在吃香蕉~~");}/** 和上面效果相同public void eat() {System.out.println(this.name + " 正在吃香蕉~~");}*/
/** public void run( String name) {System.out.println(this.name +  " 跑起来了~~");和下面效果相同}*/public void run( String name) {System.out.println(name +  " 跑起来了~~");}

因此对于非静态成员方法,在实例对象调用他们的时候,都会有一个默认的参数this,只不过我们有时看不见他们

但是,编译器一定可以看见他们

public void eat(this) {System.out.println(this.name + " 正在吃香蕉~~");}//调用普通无参成员方法aMonkey.eat();bMonkey.eat();/** 相当于* eat(aMonkey)* eat(bMonkey)* */public void run( String name) {System.out.println(name +  " 跑起来了~~");}/** 	public void run(this, String name) {System.out.println(this.name +  " 跑起来了~~");}*///调用有参普通成员方法aMonkey.run(aMonkey.getName());bMonkey.run(bMonkey.getName());/** run(this,this.getName)* run(aMonkey,aMonkey.getName());* run(bMonkey,bMonkey.getName());* */

关于this参数,默认被编译器缺省

对于static修饰的成员变量、成员方法有没有这个this指针呢?

答案是没有


二、static关键字

在这里插入图片描述

更多参考:菜鸟教程

也就是说

  • 静态成员变量在内存中只有一份,可以通过对象名访问,但是不建议,一般通过类名设置,访问
  • 静态成员方法没有this指针,不能使用类的非静态变量,因为类的非静态变量值 是属于 实例对象的,值是不确定的
/*** 报错!!* @param name*/public static execrise(String name) {System.out.println(this.name + " 在锻炼!!是一个自律猴~");}
/*execrise()execrise(aMonkey)//参数多了好办,不用传下去,直接丢弃execrise(aMonkey)//参数多了好办,不用传下去,直接丢弃*/
http://www.lbrq.cn/news/1479439.html

相关文章:

  • 北京网站优化专家/推广图片制作
  • 科技创新的重要性和意义/优化大师免费版下载
  • 网站seo方案模板/微商软文范例大全100
  • 陕西网站建设品牌公司推荐/免费有效的推广网站
  • 山东微商网站建设/数据指数
  • 深圳微商城网站设计多少钱/免费的seo网站
  • 做网站宣传的公司/可以免费打广告的网站
  • b2c平台网站建设/培训机构哪家好
  • 自己建设网站模版/做网站建设的公司
  • 毕业设计题目怎么选题/品牌seo培训咨询
  • 泰州做网站需要多少钱/seo搜索引擎推广什么意思
  • wordpress做外贸站/怎么自己弄一个网站
  • 独立网站建设/网络营销服务平台
  • html网站的直播怎么做/windows优化大师收费吗
  • 赣州淘捷网络科技有限公司/优化师的工作内容
  • 云南省中国建设工程造价管理协会网站/长尾词和关键词的区别
  • 基层人武部正规化建设/厦门搜索引擎优化
  • 山西省建设厅官方网站/关闭站长工具seo综合查询
  • ...无锡网站制作/关键词排名怎么快速上去
  • 中小企业网站建设报告/网站建设合同
  • seo排名快速上升/成都网站关键词推广优化
  • 电子元器件网站建设/模板自助建站
  • 普集网站开发/网上怎么做广告
  • 做视频网站可行吗/广州搜索排名优化
  • 北京网站制作基本流程/站长统计是什么意思
  • 松阳县建设局网站/找代写文章写手
  • 定制头像的网站/汕头企业网络推广
  • 免费做漫画网站/搜索量用什么工具查询
  • 中国建设积分商城网站/网络服务是什么
  • 制作网站建设的公司/西安关键词seo
  • Dify API接口上传文件 postman配置
  • 从内部保护你的网络
  • SpringMVC全局异常处理+拦截器使用+参数校验
  • 向华为学习——IPD流程体系之IPD术语
  • 电商前端Nginx访问日志收集分析实战
  • Docker状况监控