类:类是对现实世界事物进行抽象所得到的结果。程序当中的类就是现实世界中的事物进行抽象转换后得到的结果,例如类中的方法对应某个事物的行为动作,属性代表该事物的某些属性状态。类其实就是现实世界事物在计算机中的模型。
类与对象的关系:对象也叫做实例,是类经过“实例化”后得到的内存中的实体。类表示一个种物的集合,比如学生类,老师类,飞机类等,而对象则是实例化的,表示具体的一个事物,特指某个学生,某个老师,某个飞机。注意,并不是所有类都可以实例化,例如数学这个类,它不能实例化,不能叫做“一个数学”。依照类创建对象的过程,叫做“实例化”。(一般情况下,在讨论现实世界的语境下,一般叫类与对象,在程序世界的语境下,一般称类与实例。二者其实本质相同。)
如何创建类的实例:
new Student();
即直接用new操作符创建一个实例,new+类名();
通过引用变量给创建的实例命名:
Student student;//先声明变量
student = new Student();//将创建的实例赋值给这个变量
当然,这里有一种更简洁的写法
Student student = new Student();
一个实例可以有多个引用变量,也可以没有引用变量,一个引用变量也可以没有实例
Student student1;//声明引用变量1
Student student2;//声明引用变量2
student1 = new Student();
student2 = student1;//这个时候两个引用变量其实指的是同一个学生类的实例
类的三大成员:
1.属性:表示事物的各个属性;
2.方法:可以理解为这个类的事物可以干什么,这类事物的一些行为;
3.事件:类或对象通知其他类或对象的机制,关联其他类与对象;
静态成员:也叫做类的成员,其实就是说这个类抽象出来之后自带的一些成员,比如说学生类它抽象过来之后就自带的学生人数,平均年龄,平均身高等成员;
实例(非静态)成员:具体指的是一个对象的成员,比如说具体的一个学生的身高,体重,发色等成员;
今天的程序练习:
创建一个实时能显示时间的界面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
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 Time
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DispatcherTimer timer = new DispatcherTimer();//实例化一个timer
timer.Interval = TimeSpan.FromSeconds(1);//timer的Interval属性表示触发的时间间隔
timer.Tick += Timer_Tick;//将下面的方法挂接到当前这个事件,每触发一次事件就会执行一次下面的方法
timer.Start();//开始
}
private void Timer_Tick(object sender, EventArgs e)
{
this.TimeTextBox.Text = DateTime.Now.ToString();//输出当前时间
}
}
}
<Window x:Class="Time.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:Time"
mc:Ignorable="d"
Title="NowTime" Height="450" Width="800">
<Grid>
<Grid.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF175168" Offset="0.083"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</Grid.Background>
<TextBox x:Name="TimeTextBox" HorizontalAlignment="Center" Height="105" Margin="0,112,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="694" FontSize="48"/>
</Grid>
</Window>
运行结果图:
在编程中出现了一个小差错,在设计界面的时候我双击了文本框然后进入代码会自动添加这个事件
private void TimeTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
}
然后我将这段代码删除之后继续编程,但是最后会出现报错,原因其实就在我刚开始双击文本框那里,虽然我把自动生成的那段代码删除了,但是,在这里:
XAML代码这里面会文本框属性那一栏会多出下面这行代码
TextChanged="TimeTextBox_TextChanged"
它就是问题所在,把这段自动生成的代码删去,程序就可以正常运行了。
好耶,又get到了一个tip。
//以上内容仅代表个人学习心得与理解