1、C#与Java,BCPL语言 B 语言 C 语言C 语言是1972 年由 Dennis Richie 在 AT 又支持面向对象程序设计,成为一种更好的结构化程序的技术.( 随后发展, 各公司 C+ 差别很大)Java 语言-Sun公司研究智能化家电语言Oak 1993年Web 静态网页 Oak能创建动态页面 Sun设法 结合Web,C+, 对Oak进行大规模地改造1995年推出 Java-有人称C+. ( 面向对象 )C# 语言-Microsoft公司为推行 .NET 战略而发布的一种全新的 编程语言-.继承 C+ 语言的所有优点, 抛弃 C+ 中的各种不安全因素,借鉴Java的重要特征, 对
2、 Java 作了演化, 实现纯面向对象程序设计. -C+ C#.,面向对象,面向对象-是软件工程的设计思想, 设计方法.- 面向真实的世界. 按照人类习惯的思维方法, 认识事物,研究规律, 确定软件实现的框架,确定技术实现的路线.物以类聚 -具有某些共同特证的事物划分成一类- 一类事物.一类事物-类:1. 特证-状态, 属性, 对象, 数据成员, 字段成员, 变量2. 运动规律-行为, 方法, 服务, 成员函数, 方法成员, 函数 如: class Myclass1int x,y;public Myclass1() 类 属性 ;x = 0; 方法 ;y = 0; public Method1(
3、) ,类格式,Class Myclass2int i,j; 属性格式 :Myclass1 Obj101; 类型 对象 ;Myclass1 Obj102 = new Myclass1(); ( 类型 实例 ). public int Method2(int i,int j) 方法格式 : 修饰符 返回类型 方法名 ( 形参1, 形参2) 函数体 ,重要特征,重要特征:C# Java1. 类 class 定义模板2. 封装性 protected 信息隐藏3. 继承性 : extends 代码复用4. 多态性 overload 可重用性virtual(override)还有一些概念特征,如:函数重载
4、 ; 运算符重载;I/O 流 ; 模板 ;代理 ; 属性 ; 命名空间;,C#数据类型,值类型- 整型(byte,short,int,long,sbyte,ushort,uint,ulong)、浮点型(float,double)、小数型(decimal)、布尔型(bool)、字符型(char). 引用类型-串类型(string)、类类型(class)、接口型(interface)、数组型 (array)、代理型(delegate). 指针类型-可以没有. (1)字符常数是单引号 A, c字符串常数是双引号 “this” 逐字符串常数 “this”“c:windowssystem” “c:win
5、dowssystem” (2)匈牙利命名法: 数据类型前缀+变量名(第一字符大写) - (教材p22)如: nIndex, bStatus,strNames, (3)最终基类: object( System.object ) (4)装箱与折箱: Boxing-把值类型转成- object 类型. ( 对象类型 ).int i = 100;object ojt=i; 创建object类型的实例ojt,然后将i的值复制给ojt.Unboxing-把 object 类型转成 -值类型. (5)定义常量: const 类型 变量名 = 表达式.,Java数据类型,简单类型 整数 (byte,short
6、,int,long) 浮点 (float,double ) 字符 ( char) 布尔 (boolean ) 复合类型(引用) 字符串(string) 类 (class) 接口 (interface) 数组 ( )(1) 字符常数是 单引号字符串常数是 双引号 (2)变量名 以小写字母开始, 多个单词组成变量名除第一个单词外其余单词第一个字母大写;对象名的第一个字母一般为小写;类名第一个字母大写并体现该类的功能或特征.(3)定义常量 final 类型 常量名 = 表达式,C# 类,修饰符 class 类名:修饰符 父类名: 接口名数据成员 常量成员 (修饰 const 类型 变量名 = 表达式
7、;)字段成员 (修饰 类型 变量名;修饰 类型 变量名=表达式;修饰 类型 变量名=new 类名(); )函数成员 构造函数-类名();析构函数- 类名();属性成员-get(), set(param);方法成员-修饰 返回类型 方法名 (形参) 函数体事件成员-索引成员-属性 修饰 类型 this (形参) 函数体运算符成员- 成员修饰(类成员访问权限): public-外界访问 protected-不许外界, 派生类可访问 private-不许外界及派生类访问 internal-同命名空间类访问 static-属于类本身 readonly-只读,Java 类,修饰 class 类名 ext
8、ends 父类名 implements 接口, 类属性 数字常量 (final 类型 常量名 = 值(式) 属性 1. 修饰 类型 变量名 =初始值;2.修饰 类型 对象名 =new 类名(参数);类方法 1. 构造函数;2. 修饰 返回类型 方法名 (形参) throws 例外1, 局部变量声明;执行语句; ,类:Public -本包中可见, 要访问另一包中类必须引入 . Friendly同包中访问. 属性方法:public-少用,失去封装性 ;protected-同包中;privateed-本类中;privated protected-该类及子类.,标准输入输出,C#: Java:键盘输入
9、 键盘输入Console.Read(); System.in.read(); 送显示 送显示Console.write(“”); System.out.print(“”);Console.writeLine(“”);,异常例外,C# 异常:ExceptionSystemExceptionApplicationExceptionIOExceptionWebExceptionXmlException 处理:throw trycatchfinally 引入:using system;,java例外: ThrowableErrorExceptionRuntimeExceptionIOException
10、AWTExceptionSQLException 处理:throw trycatchfinally 导入:import java.awt.AWTException,C#程序结构,C#程序-导入命名空间 using system;-定义功能类- 数据成员- 常量成员-定义常量-字段成员-特定对象-函数成员-方法成员-功能函数-属性成员-外界读写-Main 入口方法 ( public static void main() )-标准输入输出Console.Read(); Console.write(“”); Console.writeLine(“”);,Java程序结构,Java 程序-导入必须包
11、import java.awt.*;-定义功能类-类属性-类方法-Main 入口方法 ( public static void main( string args )-标准输入输出System.in.read();System.out.print(“”);,类与对象关系,Java.lang.Objectjava.io.InputStreamjava.io.FilterInputStreamjava.io.BufferedInputStreamjava.io.OutputStreamjava.io.FilterOutputStreamjava.io.BufferedOutputStreamjav
12、a.io.PrintStream public void println(char c);public void println(Object obj);public void println(String s);java.lang.System 引用: System.out.Println(“TellHow”);public static InputStream in; 类调静态属性public static PrintStream out; 对象调方法public static void exit(int status);,C#类与对象关系,System.ObjectSystem.Consolepublic static TextReader In ;public static TextWriter Out ;public static int Read();public static void WriteLine(string value);引用:using System;ch=Console.Read();Console.WriteLine(“TellHow”);类名 静态方法,The End,