ICode9

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

类与对象

2022-08-16 22:33:19  阅读:135  来源: 互联网

标签:构造方法 对象 析构 构造函数 方法 属性


1、类

用于描述某个事物特征的,就是类(class)。

类的语法

[访问修饰符] class 类名
{
    类的描述信息;
}

访问修饰符:可不写

class:关键字,声明类。

描述信息:字段、属性、方法等等。

2、对象

一个具体的个体,通过类实例化出来的,称之为对象 。

对象的语法

类名 对象名 = new 类名();

类名:可以是自己定义的,也可以是系统提供的

对象名:通过这个类创建出来的一个具体的个体名称

new:关键字 实例化

类与对象的关系

类用于描述一类事物的信息;对象是这个类中具体的个体。

3、字段

变量在类中的新名字,与变量的作用一样。没有复制默认为空。

字段的语法

public 数据类型 字段名;

访问修饰符

public:公开的。通过对象名.xx×的形式可以直接访问到。

private:私有的。通过对象名.xxx的形式访问不到。

对象使用方法

1、实例化对象

2、字段的赋值与取值

赋值:对象名.字段名 = 值;

取值:对象名.字段名;

4、属性

字段是我们对象的核心数据,如果直接public公开的话,容易被恶意赋值。所以,字段通常使用private修饰,这样通过对象名.xxx的形式访问不到。但是我们又需要通过对象名.xxx的形式对字段存储的数据进行操作。这个时候就出现了一个新的东西“属性”。

属性的作用

对字段进行保护,属性保护的字段设置成private,通过属性间接的操作字段。

public 数据类型 属性名
{
  get{return 字段名;}  
  set{字段名 = value;}      
}

数据类型:和要保护的字段的数据类型一样;

属性名:和字段名一样,只不过首字母要大写;

get:当通过属性名取值的时候,会自动调用get中的代码;

set:当通过属性名给字段赋值的时候,会自动调用set中的代码;

value:也是系统关键字,代表赋给属性的值;

get和set本质上就是两个函数。

 

 

 使用属性进行合法性校验:

 

 

5、命名空间

对代码文件进行分类管理。

命名空间的语法

定义命名空间:namespace空间名称{类}

引入命名空间:using空间名称

6、方法

方法就是函数,在面向对象编程的类中,函数称之为方法。使用语法完全一样。

6.1 普通方法

普通方法,就是普通函数。在类中的作用是对对象的“行为”进行描述。

访问修饰符 返回值 方法名(参数列表)
{
  方法的具体功能代码;  
}

6.2 构造方法

首先它是一个方法,然后它具有“构造的作用,所有称之为构造方法。简单点说,构造方法可以对实例化出来的对象进行初始化。

构造方法的语法要求

public 类名()
{
    构造函数代码;
}

①构造方法要用public修饰,不能用private修饰;

②构造方法没有返回值,且连void也不能写;

③构造方法的方法名字必须跟类名一样;

④构造方法是可以有重载的。

  构造函数的调用是强制性的,一旦在类中定义了构造函数,那么创建对象时就一定要调用,不调用是错误的。如果有多个重载的构造函数,那么创建对象时提供的实参必须和其中的一个构造函数匹配;反过来说,创建对象时只有一个构造函数会被调用。

6.3 析构方法

析构函数于构造函数相对应,构造函数是对象创建的时候自动调用的,而析构函数就是对象在销毁的时候自动调用的的。

~类名()
{
  析构方法代码体;  
}

1)析构方法只能有一个,不能构成重载。如果我们没有显式的写出析构方法,那么编译器也会自动的给我们加上一个析构方法,什么都不做;如果我们显式的写了析构方法,那么将会覆盖默认的析构方法。

2)析构方法不能有参数。

3)析构方法无返回值也无访问修饰符。

4)由系统自动调用。

 

标签:构造方法,对象,析构,构造函数,方法,属性
来源: https://www.cnblogs.com/tenyuan/p/16592547.html

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

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

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

ICode9版权所有