ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

类与对象

2022-08-02 00:04:45  阅读:154  来源: 互联网

标签:定义 对象 局部变量 全局变量 方法 属性


类与对象

从认识论的角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的

从代码运行角度考虑是先有类后有对象。类是对象的模板

  • 类:由属性(成员变量)和方法(非静态)构成

  • 类借助对象体现属性和行为(方法),类中对象的属性以成员变量的形式定义,对象的行为以方法的形式定义。

  • 类定义:[访问控制符 修饰符] class 类名{}

  • 属性的定义:[访问控制符 修饰符] 属性类型 属性名 ;private String name;

[]代表可选

  • 方法:避免方法的死循环

  • Java类中以方法来描述一个实体的动态属性。方法的定义中,在返回值的前面可以添加也可以不添加修饰符。
  • 一个实体拥有的动态属性(方法)可以是多个,也可以是0个

创建一个类的时候,如果主要用来存储数据,一般按照以下方式进行定义

  1. 类的定义是公共的,public

  2. 类的属性必须是私有的,private

  3. 类当中必须提供getter/setter方法

  4. 类当中必须有该方法:public 类名(){}(无参构造)

以下信息可以非标准

  1. 类当中还需提供该方法:public 类名(声明全部的属性参数信息){需要对类当中所有的属性都进行赋值 this.属性名称=属性名称;}

  2. 该类还需实现public class 类名 implement serializable{}

  3. 该类还需提供 public string tostring(){return 属性名称+“,”+属性名称+“,”+···}

按照以上方式定义处的类,我们把这种类称之为Java的bean类

 

对象

  • 对象的创建,使用new关键字创建对象;类名 返回的对象名 = new 类名 ();

  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认初始化以及对类中构造器的调用

类是抽象的,需要实例化;类实例化后会返回一个自己的对象,赋值之后成为具体对象

  • 对象的使用
  • 对象的属性:返回的对象名.属性名 = 属性值

  • 对象的方法:返回的对象名.方法名();

类与对象的关系

  • 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但不能代表某一个具体事物

  • 对象是抽象的具体实例,体现特点,展现具体实例,而不是一个抽象的概念

构造器(构造方法,constructor)

  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

    • 必须和类的名字相同

    • 必须没有返回类型,也不能写void

    • 类名() {};

  • 一个类即使什么都不写,它也会存在一个方法(如果我们不定义构造方法,java编译器依然会为每个类定义一个无参构造,这个方法是默认的)

  • 构造器的核心作用:1、使用new关键字,本质是在调用构造器;

    2、完成类实例化的时候,对类的私有属性进行初始化赋值

使用时,建议无参必须定义,有参根据是否需要定义

一旦定义了有参构造,编译器不会自动定义无参构造,如果想使用无参构造,就必须显示定义一个无参构造

  • alt + insert:生成构造器

全局变量与局部变量

  1. 定义的位置不同:局部变量定义在局部方位内(方法内),全局变量定义在类中;

  2. 初始化不同:局部变量在使用前必须赋值(局部变量不会初始化赋值),全局变量如果没有赋值,系统会自动初始化赋值

  3. 生命周期不同:一个对象在程序中(内存中)从生到死的过程,局部变量一般定义在方法中,从该方法被调用开始创建,到该方法从栈中弹出时消亡,全局变量从它所在的对象被创建时开始存在,到该对象从堆中被垃圾回收器回收时消亡。

  4. 存储的位置不同:局部变量大多存储在栈中(方法栈),全局变量一般存储在堆中;

注意:1. 在同一方法中,不允许有同名的局部变量。在不同的方法中,可以有同名的局部变量; 2. 局部变量可以和全局变量同名,并且在使用时,局部变量具有更高级的优先级。

    • 局部变量的作用域是离它最近的大括号(就近原则);全局变量的作用域是整个类体中都有效。

当方法中含有同名的局部变量和全局变量时,对这个变量名的访问默认是局部变量,借助this,访问全局变量

this关键字

  • this关键字代表本类对象的引用,通过关键字可以隐式的用于调用对象的全局变量和方法;this引用的是本类的一个对象

  • 除了可以调用全员变量和成员方法外,还可以作为方法的返回值以及调用类中的构造方法(this(),此时必须在第一行)

  • this不能在静态方法中直接使用

  1. 调用对象属性

  2. 调用其他的构造方法,只能构造方法调用构造方法,

this. xxx = ;代表当前类的,=后面的值通常是参数传进来的值

标签:定义,对象,局部变量,全局变量,方法,属性
来源: https://www.cnblogs.com/xuduoduo92/p/16542285.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有