C# 的set和get方法基本相同。
C# 的set和get方法基本相同。
C# 的空指针异常与 java基本相同。
VS新建类:
右键项目- 添加- 新建项- 选择类, 在弹窗的最下面名称位置修改类的名称。
Math.Sqrt(); 求给定值的平方根。
private:私有的访问权限。
权限修饰符和java基本相同。
结构体不需要实例化, 也就是new
而类需要进行实例化再进行使用。
C#的类和java类的定义基本相同。
C#的异常处理和java基本相同
try{
} catch (捕获的异常类型) {
}
CLR:异常系统
继续执行是从当前断点执行到 下一个断点。
VS的debug方法与IDEA软件基本相同。
断点窗口可以禁用、删除断点。
程序中的错误: 语法错误(编译错误)
语义错误(可能导致运行时异常)
语义错误也可能导致代码逻辑错误, 结果与需求不一致。
讲的什么玩意
25
16
练习8
a.Fun2(b); // b.Fun1(1); 2 Fun1(5); 5
b.Fun2(a); // a.Fun1(1); 1
Fun1(5); 5+1=6
//用子类构造的,所以调用的是子类里的Fun1
class ClassA<T>
{
private T a;
private T b;
public ClassA(T a, T b)
{
this.a = a;
this.b = b;
}
public T GetSum()
{
dynamic num1 = a;
dynamic num2 = b;
return (T)(num1+num2);
}
}
static void test02()
{
ClassA<int> c1 = new ClassA<int>(45,65);
int res = c1.GetSum();
Console.WriteLine(res);
ClassA<string> c2 = new ClassA<string>("hello ", "world");
string str1 = c2.GetSum();
Console.WriteLine(str1);
}
static void Main(string[] args)
{
//test01();
test02();
}
class Vector3
{
private double x;
private double y;
private double z;
public double Length()
{
double res=Math.Sqrt(x * x + y * y + z * z);
Console.WriteLine("res="+res);
return res;
}
public void SetX(double temp)
{
if (temp<0)
{
return;
}
x = temp;
}
public void SetY(double temp)
{
if (temp < 0)
{
return;
}
y = temp;
}
public void SetZ(double temp)
{
if (temp < 0)
{
return;
}
z = temp;
}
public double GetX()
{
return x;
}
public double GetY()
{
return y;
}
public double GetZ()
{
return z;
}
}class Student
{
public string name;
public int age;
public string address;
public string createTime;
public void Show()
{
Console.WriteLine("名字:" + name);
Console.WriteLine("地址:" + address);
Console.WriteLine("年龄:" + age);
Console.WriteLine("创建日期:" + createTime);
}
}
class Vehicle
{
public string brand;
public double speed;
public double maxSpeed;
public double weight;
public void Run()
{
Console.WriteLine("车在跑");
}
public void Stop()
{
Console.WriteLine("刹车");
}
}
class Program
{
static void test02()
{
Vehicle car1 = new Vehicle();
car1.Run();
car1.Stop();
Vector3 v1 = new Vector3();
//v1.SetX(5.6);
v1.SetY(4.5);
v1.SetZ(8.45);
//Console.WriteLine(v1.GetX());
v1.SetX(-5);//默认是0,没有改变成负数
Console.WriteLine(v1.GetX());
Console.WriteLine(v1.Length());
}
static void test01()
{
Student stu1 = new Student();//声明对象+实例化对象
Student stu2;//声明对象
stu1.name = "李四";
stu1.address = "山西";
stu1.age = 18;
stu1.createTime = "11月23日";
stu1.Show();
stu2 = new Student();//实例化对象
}
static void Main(string[] args)
{
//test01();
test02();
}
}
//定义类的泛型
class Studen <T>{
}
<T> -> type //可以指定某一类型
//定义方法泛型
public static T GetSum<T>(T a,T b){
dynamic num1 = a;
dynamic num2 = b;
return (T) (num1 +num2);
dynamic 动态类型
list. Remove( ) //删除,通过指定某一个元素进行删除
list. RemoveAt( ) //根据指定的索引进行移除
Sort ( ) //数值排序 ,升序。
List<int> list = new List<int>();
Console.WriteLine(list.count+" : "+ list.Capacity);
list.count 代表列表的个数
list.Capacity 表示列表的容量
集合(列表 list)
1,泛型
List<int> list = new List<int>();
子类开始继承
如果没有写Overide关键字,则方法为隐藏方法