java与c#中面向对象的不同实现
来源:互联网 发布:亿人围观网络春晚 编辑:程序博客网 时间:2024/05/21 07:48
从面向对象的三大特点去考虑:
1。封装
c#中的成员变量也叫字段,封装使用了一个新的形式来表示,个人认为用起来也非常方便,叫做属性。
标准的写法:通过getter和setter访问器来对成员变量进行封装。
如:private string _name;
public string Name
{
get { return name; }
set { name = value; }
}
注:在属性的基础上还有索引器,用来操作数组或集合,非常方便,用法见msdn,讲解非常详细。
java中的成员变量叫属性,注意此属性非c#里的属性。相当于c#中的字段。封装方式很简单。
使用get和set方法进行封装。
private String name;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
2.继承。
继承的特点都是一样的。继承父类的属性和方法,构造方法除外,只允许单继承等。
只是实现方式不同。
c#里直接使用“:”来继承类或实现接口,继承的类写在前边。还有父类实例关键字是base.
如下:public class A : 父类,接口1,接口2 //继承类和实现接口
public A():base() //调用父类构造
java中继承关键字“extends” 实现接口关键字"implements",父类实例关键字"super".
如下:public class A extends 父类 implements 接口1,接口2
public A()
{
super(); //放在第一行
}
3。多态
方法重载:通常在同一个类中,方法名一致,方法签名(参数列表)不同,包括参数类型,参数个数,参数顺序不同。返回值不能区分方法重载。
方法重写:在父类和子类之间,方法名一致,方法签名一致,返回类型一致。
c#中实现方法重写:父类中的方法必须声明为virtual(虚方法)或abstract(抽象方法),子类才能进行重写。重写时,用override关键字进行重写。
java中实现方法重写:父类中的方法默认都可以被重写。父类子类中不需要任何关键字,只要满足方法重写条件自动识别为重写。
4.访问修饰符也有所不同。
c#中:private, protected,internal,public ,protected internal
private 私有的,只可以被本类所存取。
protected 受保护的,只可以被本类和其继承子类存取。
internal 程序集级别的,通常其编译后的文件扩展名往往是“.DLL”或“.EXE”。
public 共有的,可以被任意存取。
protected internal 唯一的一种组合限制修饰符,它只可以被程序集内所有的类和这些类的继承子类所存取。
注:c#中类的默认访问级别为internal,字段、属性和方法的默认访问级别是private.
java中:private,default(默认),protected,public
private ,protected,public 同c#中的一致。
default 当前包内的所有类。
注:java中默认访问级别是default.
5.类的划分。
c#中使用命名空间(namespace)和java中的包(package)
区别是,c#中的命名空间是逻辑上的划分,java中的包是物理上的划分。
暂时只想到这么多。以后想到会继续完善。
- java与c#中面向对象的不同实现
- 初学java:Java面向对象与c语言面向过程的不同
- Java与C#关于面向对象的比较
- 面向对象设计与面向过程设计的不同
- 黑马程序员--C#中面向对象与面向过程
- C#中面向对象
- 面向对象中的对象、类与Java中对象与类的差别
- C#中面向对象的OOP概念
- Java中二维数组与面向对象
- Java中面向对象与内存解析
- Java中面向对象以及面向对象的涉及原则
- C#的面向对象
- C#实现面向对象程序设计
- Lua语言中面向对象的实现
- Lua中面向对象的实现
- Java 与面向对象
- Java面向对象-接口的实现关系
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
- 用VFP列出ACCESS所有表的字段结构,含标题。
- 浅谈Hibernate中几种常用的主键生成策略
- 简单的SPT实例。
- 打算把几个引擎都给研究一下,丰富一下自己的业余生活!
- 使用Ext实现js的继承,以及扩展Ext组件的思路
- java与c#中面向对象的不同实现
- UML基础知识
- Automation for the people: Pushbutton documentation
- delphi 快捷键
- DECLARE_DYNCREATE/IMPLEMENT_DYNCREATE等宏
- Automation for the people: Continual refactoring
- Automation for the people: Hands-free database migration
- 解决linux下poppler不支持中文PDF的问题。
- 实现表格隔行变色