public,private, protectd static abstract final 回答下列问题(作用和应用范围): 1.这些修饰符的作用各是什么? 2.这些修饰符,是否能用于修饰 类 构造方法 普通方法 类中的属性成员 方法中的局部变量 ?
时间: 2024-04-02 17:37:56 浏览: 24
1. 这些修饰符的作用如下:
- public:可以被任何类访问,没有访问限制。
- private:只能在当前类中访问,其他类无法访问。
- protected:只能在当前类和其子类中访问,其他类无法访问。
- static:静态修饰符,可以用来修饰类的方法和属性。静态方法和属性可以通过类名直接访问。
- abstract:抽象修饰符,用于声明抽象类和抽象方法,不能被实例化,只能被继承和实现。
- final:最终修饰符,用于声明不可变的类、方法、变量等。被 final 修饰的类不能被继承,被 final 修饰的方法不能被重写,被 final 修饰的变量不能被重新赋值。
2. 这些修饰符可以用于修饰:
- 类:public、abstract、final。
- 构造方法:public、protected、private。
- 普通方法:public、protected、private、static、abstract、final。
- 类中的属性成员:public、protected、private、static、final。
- 方法中的局部变量:无法使用这些修饰符。
相关问题
EventArgs的使用方式
EventArgs是一个基类,用于传递事件的参数信息。在定义一个事件时,可以通过委托定义一个事件处理方法,该方法必须接收两个参数:一个是对象sender,表示事件的发送者;另一个是EventArgs或它的派生类,表示事件的参数信息。
使用EventArgs的方式如下:
1. 定义自己的EventArgs派生类,以便传递自定义的事件参数信息。
```csharp
public class MyEventArgs : EventArgs
{
public int MyEventArgValue { get; set; }
}
```
2. 定义一个委托类型,用于定义事件处理方法。
```csharp
public delegate void MyEventHandler(object sender, MyEventArgs e);
```
3. 在类中定义一个事件, 事件使用关键字event修饰,为了避免直接调用事件,通常使用protectd virtual的形式,这时候事件的名称通常以On开头。
```csharp
public class MyClass
{
public event MyEventHandler MyEvent;
protected virtual void OnMyEvent(MyEventArgs e)
{
MyEventHandler handler = MyEvent;
if(handler != null)
{
handler(this, e);
}
}
}
```
4. 触发事件时,创建自定义的EventArgs对象,并调用OnMyEvent方法。
```csharp
MyEventArgs args = new MyEventArgs();
args.MyEventArgValue = 100;
OnMyEvent(args);
```
5. 在使用该事件的类中,定义事件处理方法。
```csharp
public class OtherClass
{
public void HandleMyEvent(object sender, MyEventArgs e)
{
Console.WriteLine("MyEvent has been handled. EventArgValue: " + e.MyEventArgValue);
}
}
```
6. 在需要使用事件的地方,注册事件处理方法。
```csharp
MyClass myClass = new MyClass();
OtherClass otherClass = new OtherClass();
myClass.MyEvent += otherClass.HandleMyEvent;
```
这样在MyClass中触发MyEvent事件后,就会执行OtherClass中的HandleMyEvent方法。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)