c#面向对象基础3
静态与非静态的区别
(1)在非静态类中既可以有实例成员,也可以有静态成员(static修饰)。
(2)在调用静态成员的时候要使用:对象名.实例成员。
(3)在调用静态成员的时候要使用:类名.静态成员。
总结:静态成员使用类名去调用,非静态成员使用对象名去调用。静态函数中只能访问静态成员,不允许访问实例成员 (静静),实例函数中既可以使用静态成员,也可以是实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
使用:什么时候使用静态,什么时候使用非静态
(1)把类当成“工具类”去使用,考虑写成静态类 例如:console类
(2)静态类在整个项目中资源共享---------占内存,,,,只有程序全部结束后,静态类才会释放资源。
非静态创建对象并赋值(逐一赋值)会造成代码冗余,所以产生构造函数来赋值
构造函数:
作用:初始化对象(给对象的每个属性依次赋值),构造函数是一个特殊的方法。
(1)构造函数没有返回值,没有Void
(2)构造函数名称必须和类名一样。
语法:
public 类名(参数)
{
属性赋值;
}
创建对象时调用构造函数 关键字new
new关键字做了三件事:
(1)在内存中开辟了一块空间。
(2)在开辟的空间创建对象。
(3)调用对象的构造函数进行初始化对象。
类当中默认有一个无参的构造函数 ,默认的构造函数会被我们新建的构造方法覆盖
无参的构造函数:public 类名()
{
}
有参的构造函数:public 类名(参数)
{
赋值;
}
在创建对象时(new)传参 n=new 类名(实参)
当类中已有重载的构造函数时,需要无参的构造函数需重新写无参构造函数。
this关键字:
作用:(1)表示当前类的对象
(2)调用本类当中的构造函数(重载中不全参数的构造函数去调用全参的构造函数)
语法::this()
例如:public Student(部分参数):this(全部参数值)
析构函数:~类名(){}
作用:当程序结束的时候,析构函数才执行 -----------》释放资源
c#面向对象基础3的更多相关文章
- 了解JavaScript 面向对象基础 & 原型与对象
面向对象语言中的对象 老是能听到什么基于对象, 面向对象. 什么是对象, 如果有面向对象基础的人可以无视了, 下面举个简单的例子给大家讲讲面向对象中, 对象的定义, 这个是比较通用的, 不过对于JS来 ...
- MYSQL、PHP基础、面向对象基础简单复习总结
一.MYSQL 1.配置MySql 第一步安装服务器(apache). 第二部安装MySql界面程序 2 ...
- 从零开始学Python第六周:面向对象基础(需修改)
标签(空格分隔): 面向对象 一,面向对象基础 (1)面向对象概述 面向过程:根据业务逻辑从上到下写代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...
- python面向对象基础
面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- java基础学习05(面向对象基础01--类实例分析)
面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- 8.python笔记之面向对象基础
title: 8.Python笔记之面向对象基础 date: 2016-02-21 15:10:35 tags: Python categories: Python --- 面向对象思维导图 (来自1 ...
- 【重走Android之路】【Java面向对象基础(三)】面向对象思想
[重走Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinkin ...
- 【重走Android之路】【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder
[重走Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final ...
随机推荐
- 利用spring-mail模块发送带附件邮件dome
本例为maven项目,直接撸代码吧. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...
- win10系统把文件夹固定到任务栏
为某个文件夹创建快捷方式 右键该快捷方式,选择固定到开始屏幕 点击win图标进入开始屏幕,在屏幕的右侧有刚才固定的快捷方式 右键该快捷方式,选择固定到任务栏即可.
- hdu1114 dp(完全背包)
题意:已知空钱罐质量和满钱罐质量(也就是知道钱罐里的钱的质量),知道若干种钱币每种的质量以及其价值,钱币都是无限个,问最少钱罐中有多少钱. 这个题在集训的时候学长给我们做过,所以你会做是应该的,由于已 ...
- JS校验 if (! temp_var) {} //拦截 ''和 undefined
if (! aaa) {} //拦截 ' ' 和 undefined 和 0 不拦截null
- 【JVM】jvm至jstack命令
一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...
- javascript的单例模式
单例模式是javascript最基本,最有用的模式之一,它提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码通过单一的变量进行访问.我的理解是在这个作用域中,只有通过单一的变量来访问,不存 ...
- LG2024 [NOI2001]食物链
拆点法 用并查集维护每种动物的同类.天敌.食物群 #include<cstdio> int fa[300005]; int n,k,ans; inline int read() { int ...
- $.ajax()方法详解--极快瑞中的阿贾克斯函数
ajax() 函数和那些abs()函数 sin()这些函数都是底层实现好了,封装好了,可以直接拿来用的 使用者只需要传入参数,然后就可以得到相应的结果 $.ajax({name:value, name ...
- scylladb docker 运行试用
scylladb 是兼容cassandra 的数据存储系统,从官方的性能报告,比原生的apache cassandra 有好多 的提高 使用docker 运行,具体的也可以参考官方文档,后边会提供 ...
- c2java Greedy 之任务调度
近期调试一个javaproject的时候,我遇到不是期望的输出结果时.是这么干的: A1凝视掉抛出的异常: A2加打印对照异常输入和正常输入. A3进一步加打印缩小范围. 事实上仅仅需:B1静下心来细 ...