首页 > 其他分享 >类与对象(三)

类与对象(三)

时间:2023-09-21 21:31:53浏览次数:27  
标签:变量 构造方法 对象 局部变量 ice public Cola


今日份学习:局部变量及其有效范围,this关键字和类的构造方法。


  • 局部变量

定义:如果在成员方法内定义一个变量,那么这个变量被称为局部变量。
   局部变量是在方法被执行是创建,在方法被执行结束时被销毁。局部变量在使用时必须进行赋值操作或者初始化,否则会出现编译错误。

  • 局部变量的有效范围

   可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。
在相互不嵌套的作用域中可以同时声明两个类型和名称相同的局部变量。但是在互相嵌套的区域中不可以这样声明,编译器将会报错。
(在作用范围外使用局部变量是一个常见的错误,因为在作用范围外没有声明局部变量的代码)

  • this关键字(在变量与参数重名时使用)

   this关键字用于表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类。this关键字只能在本类中使用。
   this引用的就是本类的一个对象,在局部变量或方法参数覆盖了成员变量时,就要添加this关键字明确引用的是类成员还是局部变量或方法参数。
   this除了可以调用成员变量或成员方法,还可以作为方法的返回值。

  • 类的构造方法

每当类实例化一个对象时,类都会自动调用构造方法。

构造方法的特点:

  1. 构造方法没有返回值。
  2. 构造方法的名称要与本类的名称相同。

(在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用public void methodEx()这种形式进行定义,但构造方法并不需要使用void关键字进行修饰。)

构造方法的语法格式如下:

public Book(){

//构造方法体

}

其中,public是构造方法修饰符,Book是构造方法的名称。

在构造方法中可以为成员变量赋值,这样当实体化一个本类对象时,相应的成员变量也将被初始化。如果类中没有明确定义的构造方法,编译器会自动创建一个不带参数的默认构造方法。

(如果在类中定义的构造方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器就会报错。所以,只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。)


【例】买可乐,商家默认不加冰块,但可以要求加3个冰块。(构造方法和this关键字的用法)

public class Cola {

int ice;


public Cola(int ice) {

this.ice=ice;

}


public Cola() {

this(0);

}

public static void main(String[] args) {

Cola ice1 =new Cola();

System.out.println("一杯可乐商家默认的冰块有"+ice1.ice+"块。");

Cola ice2 =new Cola(3);

System.out.println("一杯可乐在要求加冰块后有"+ice2.ice+"块冰块。");

}


}

运行结果如下:

类与对象(三)_局部变量

标签:变量,构造方法,对象,局部变量,ice,public,Cola
From: https://blog.51cto.com/u_15966010/7557433

相关文章

  • 基于Java面向对象思想对个人项目的深度分析
    基于Java面向对象思想对个人项目的深度分析一、摘要本文站在java面向对象思想的角度,深入研究了GJH同学Java中小学数学卷子自动生成程序的工程代码。通过对核心类、继承与多态、封装与解耦等面向对象思想和生成题目算法进行了深度分析,全面探讨了系统的优缺点与改进空间。关键字:j......
  • 面向对象_向下转型_向上转型
    1packagecom.msb9;23publicclassAnimal{4intage;5publicvoidshout(){6System.out.println("小动物在大声叫");7}8}1packagecom.msb9;23publicclassPigextendsAnimal{4doubleweight;5publicvoidsh......
  • JavaScript实现数组对象去重
    有多种实现方式:一、使用 Set 对象:1Array.from(new Set(array))该方法会先创建一个 Set 对象,然后再使用 Array.from 方法将 Set 对象转换为数组,因为 Set 对象不允许有重复的元素,所以这样可以实现去重的效果。但是,如果数组中的元素是对象,Set 对......
  • MySQL数据库查询对象空值判断与Java代码示例【含面试题】
    AI绘画关于SD,MJ,GPT,SDXL百科全书面试题分享点我直达2023Python面试题2023最新面试合集链接2023大厂面试题PDF面试题PDF版本java、python面试题项目实战:AI文本OCR识别最佳实践AIGamma一键生成PPT工具直达链接玩转cloudStudio在线编码神器玩转GPUAI绘画、AI讲话、......
  • Python面向对象
    Python面向对象初识对象以表格为例:整张表格就好比一个对象,里面的信息就是对象的属性。设计表格,称之为:设计类(class)打印表格,称之为:创建对象填写表格,称之为:对象属性赋值classStudent:name=None#姓名gender=None#性别nationali......
  • JS 对象(Object)和字符串(String)互转
    利用原生JSON对象,将对象转为字符串1.varjsObj={};2.jsObj.testArray=[1,2,3,4,5];3.jsObj.name='CSS3';4.jsObj.date='8May,2011';5.varstr=JSON.stringify(jsObj);6.alert(str);从JSON字符串转为对象1.varjsObj={};2.jsObj.......
  • 视频直播app源码,VBA 之Interior 对象设置底色
    视频直播app源码,VBA之Interior对象设置底色1.ColorIndex索引颜色值Sub索引颜色值()  Fori=1To56    Cells(i,1).Interior.ColorIndex=i    Cells(i,2)=i  Nexti     Fori=1To56    Cells(i,3).Interior.ColorInd......
  • web开发:详细讲解jsp的内置对象
    1.request对象   客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。序号方法说明1objectgetAttribute(Stringname)返回指定属性的属性值2EnumerationgetAttributeNames()返回所有可用属性名的......
  • oracle 数据库对象自动备份
         本文介绍一种数据库对象备份的方法。其原因是因为我在开发时有两个数据库用户,他们的数据表结构相同,所开发的存储过程也相同,但是数据却是不同地方的数据。因为懒惰所以在修改过程包时只想修改一次就ok,所以想了一个半自动的办法,让数据库自动备份数据库对象,然后编写bat文件......
  • 4.2 Java认识类和对象
    在面向对象中,类和对象是最基本、最重要的组成单元。类实际上是表示一个客观世界某类群体的一些基本特征抽象。对象就是表示一个个具体的东西。所以说类是对象的抽象,对象是类的具体。让我们来看看人类所具有的一些特征,这些特征包括属性(一些参数、数值)以及方法(一些行为,他能干什么)。......