P4 类、对象、类成员简介

本节内容

类(class)是显示世界事物的模型。

现实中的一架飞机========================>>>抽象为程序世界中的类

类与对象的关系

  1. 对象也叫做实例,是类经过实例化得到的内存中的事宜
    • 有些类不能被实例化,如数学,我们不能说一个数学
  2. 依照类,我们可以创建对象>>>这就是实例化
    • 现实世界中常称对象,程序世界中常称实例,二者并无太大区别,常常混用,不用太纠结。
  3. 使用new操作符创建对象

△14:15开始编写程序>>>接下来我们自己动手来编写程序,创建一个实例。

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace demo2
{class Program{static void Main(string[] args){Form myForm = new Form();myForm.ShowDialog();}}
}

 

  4.引用变量与实例的关系

    Form myForm(引用变量) = new Form()(实例);

    引用变量相当于一个小孩,而实例是一个气球。形象比喻成:一个小孩牵着一个气球。

    *如果气球没有牵着就会飞掉,实例会被垃圾回收给释放掉。

    下面我们来看另外一个例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace demo2
{class Program{static void Main(string[] args){Form myForm1;Form myForm2;myForm1 = new Form();myForm2 = myForm1;myForm2.ShowDialog();}}
}

这种情况相当于是两个孩子同时牵着一个气球

常见的有下面三种情况

  1.一个小孩牵着一个气球。

  2.一个小孩没有牵气球。

  3.多个小孩同时牵着一个气球。

 

类的三个成员

1.属性(property)

  *存储数据,组合起来表示类或对象当前的状态。
2.方法(method)

  *由C语言的(function)进化而来,表示类能做什么。

  *工作中90%的时间是在与方法打交道,因为他是类真正做事,构成逻辑的成员。

3.事件(event)!!!善用

  *类或对象通知其他类或对象的机制,为C#特有。

  *善用事件机制非常重要。

  **F1键可以打开MSDN文档

 

某些特殊类或对象在成员方面侧重点不用

  1.模型类或对象重在属性:Entity,Framework。

  2.工具类重点在方法:math,console。

  3.通知类或对象重在事件:Time。

△42分钟编写数据库

△50:36编写WPF的time

接下来我们自己动手来编写一个Time的例子吧。

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;namespace WPFTime
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();DispatcherTimer time = new DispatcherTimer();time.Interval = TimeSpan.FromSeconds(1);time.Tick += Time_Tick;time.Start();}private void Time_Tick(object sender, EventArgs e){this.timeTextBox.Text = DateTime.Now.ToString();//throw new NotImplementedException();
        }}
}

界面代码如下:

<Window x:Class="WPFTime.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WPFTime"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid><TextBox HorizontalAlignment="Left" Height="139" Margin="10,10,0,0" TextWrapping="Wrap" Name="timeTextBox" VerticalAlignment="Top" Width="774" FontSize="48"/></Grid>
</Window>

 

静态成员与实例成员

  *静态(static)成员在语义上表示它是类的成员>>>与生俱来的,不需要实例化

  *实例(非静态)陈冠在语义上表示它是“对象成员”。

  *绑定(binding)指的是编译器如何把一个成员与类或对象关联起来。

  **不可小觑的 . (小数点)操作符

△59:02开始写例子

静态方法示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace demo2
{class Program{static void Main(string[] args){Console.WriteLine("hello world!");}}
}

本节课结束。

 

转载于:https://www.cnblogs.com/YiShen/p/9828348.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PhpStorm之操作数据库

对数据库进行基本的操作 还不清楚如何使用PhpStorm连接本地数据库的朋友看一下我的上一篇博客配置数据库连接点击已经连接好的数据库&#xff0c;找到下图中的 Consoles&#xff0c;然后点击 console(default) 3.在完成上面的操作后&#xff0c;就会发现在编辑器的主页面出现了…

linux的一些基本命令

一、linux的一些基本命令&#xff08;使用的是CentOS7系统&#xff09;&#xff1a; 1、创建用户组&#xff0c;创建新用户并添加到用户组 添加用户&#xff0c;添加用户组命令&#xff1a; 增加用户&#xff1a;useradd -d /usr/username -m username    为用户增加密码&a…

springBoot+mybatisPlus小demo

项目介绍&#xff1a;采用restful api进行接口规范 / 项目框架SpringBootmybatis Plus / 采用mysql进行数据存储 / 采用swaggerUI进行前后端业务分离式开发。 开发环境&#xff1a;JDK1.8Mysql8.0.12IDEAL 实现功能&#xff1a;springboot搭建整体框架&#xff0c;MybatisPlus动…

[NOI1995]石子合并

题目描述&#xff1a; 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆&#xff0c;并将新的一堆的石子数&#xff0c;记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分. 输入输出格…

docker+selenium grid解决node执行经常卡死

执行用例时出现下图&#xff1a; 可以在启动node节点容器时添加如下红色字体的参数 docker run -d -p 5903:5900 --shm-size512m --link selenium_hub:hub --name chrome_node-5903 -e NODE_MAX_INSTANCES5 -e NODE_MAX_SESSION5 selenium/node-chrome-debug 启动容器后到grid…

高级软件工程第四次作业:两只小熊队团队作业

一、团队展示 队名&#xff1a;两只小熊队 队员学号 周菲&#xff08;队长&#xff09;学号&#xff1a; 201810812007 孔繁燕&#xff08;队员&#xff09;学号&#xff1a;201810812001 一句话描述拟作的团队项目&#xff1a;充分发挥主动积极性&#xff0c;通过团队提升自我…

杂项:WCF

ylbtech-杂项&#xff1a;WCFWindows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架&#xff0c;可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting&#xff0c;WebService&#xff0c;Socket的机制&#xff0c;并融合…

jSignature开发实例

插件描述&#xff1a;jQuery手写签名插件jSignature &#xff0c;实现H5APP、网页 手写签名涂鸦 保存图片 代码实例 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP index.jsp starti…

json、xml

json&#xff1a;(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。简单地说&#xff0c;JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串&#xff0c;然后就可以在函数之间轻松地传递这个字符串&#xff0c;或者在异步应用程序中将字符串从 …

python中前后端通信方法Ajax和ORM映射(form表单提交)

后端从数据库获取数据给到前端&#xff1a; 第一种方式&#xff1a; admin.py文件代码&#xff1a; admin.route(/showList) def show():# 获取数据库所有文章数据&#xff0c;得到一个个对象resArticle.query.all()dicts[]# 将每一个对象转成字典并加入一个列表&#xff0c;再…

C#知识点总结系列:3、C#中Delegate和Event

一、Delegate委托可以理解为一个方法签名。 可以将方法作为另外一个方法的参数带入其中进行运算。在C#中我们有三种方式去创建委托&#xff0c;分别如下&#xff1a; public delegate void Print(string str);static void delegatemethod(string str){Console.WriteLine(str);}…

python的2种字符串格式化输出

字符串格式化代码&#xff08;typecode&#xff09; 法一&#xff1a; %格式使用下面的格式 %[(name)] [flags] [width][.precision] typecode (name)输出字典的value使用&#xff0c;这里的name是字典的key&#xff08;实际指定时&#xff0c;必须有外面的圆括号&#xff09; …

Python中字典合并的四种方法

字典是Python语言中唯一的映射类型。映射类型对象里哈希值&#xff08;键&#xff0c;key&#xff09;和指向的对象&#xff08;值&#xff0c;value&#xff09;是一对多的的关系&#xff0c;通常被认为是可变的哈希表。字典对象是可变的&#xff0c;它是一个容器类型&#xf…

从零开始的全栈工程师——js篇2.12(面向对象)

面向对象 Js一开始就是写网页特效&#xff0c;面向过程的&#xff0c;作者发现这样写不好&#xff0c;代码重复利用率太高&#xff0c;计算机内存消耗太大&#xff0c;网页性能很差。 所以作者就收到java和c的影响&#xff0c;往面向对象靠齐。Js天生有一个Object&#xff0c;但…

20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结

20172332 2017-2018-2 《程序设计与数据结构》第七周学习总结 教材学习内容总结 第十一章 二叉查找树 1.二叉查找树&#xff1a;一种带有附加属性的二叉树。即每个结点其左孩子都要小于其父结点&#xff0c;而父结点又小于或等于其右孩子。&#xff08;左孩子<父结点<右孩…

weblogic的输出打印日志设置

设置路径&#xff1a; 1、服务器——》控制&#xff0c;进入服务器设置 2、服务器启动——>设置参数 3、参数配置&#xff1a; -Xms2048m -Xmx4096m -XX:PermSize256m -XX:MaxPermSize512m -XX:UseConcMarkSweepGC -XX:CMSClassUnloadingEnabled -XX:DisableExplicitGC -…

支持向量机——Large Margin Classifier

支持向量机的目标是 \[\underbrace {\min }_\theta \left\{ {C\left[ {\sum\limits_{i 1}^m {{y^{\left( i \right)}}{\mathop{\rm Cos}\nolimits} {t_1}\left( {{\theta ^T}{x^{\left( i \right)}}} \right) \left( {1 - {y^{\left( i \right)}}} \right){\mathop{\rm Cos}\…

2018-2019-1 20189210 《LInux内核原理与分析》第四周作业

第三章 这一章接触内核源代码&#xff0c;对内核源码进行编译和调试跟踪 一、预备知识&#xff1a; 内核&#xff1a;整个操作系统的最底层&#xff0c;它负责了整个硬件的驱动以及提供各种系统所需的内核功能。内核实质上是系统上面的一个文件而已&#xff0c;这个文件包含了驱…

linux测试网络是否连通ping、telnet命令

ping 可以测试到目标机器的连通性&#xff0c;ping域名还可以得出解析IP。 ping ip地址 例&#xff1a;ping 127.0.0.1图例&#xff1a; telent测试端口是否开放。 telent ip地址 端口号 例如&#xff1a;telent 127.0.0.1 8080

深入了解Kubernetes REST API的工作方式

关于Kubernetes REST API的工作方式&#xff1a; 在哪里以及如何定义从REST路径到处理REST调用的函数的映射&#xff1f; 与etcd的交互发生在哪里&#xff1f; 从客户端发出请求到保存在etcd中对象的端到端路径是怎样的&#xff1f; Kubernetes REST框架 Kubernetes REST实现可…