javaSE_4

来源:互联网 发布:unity3d 3dsmax 编辑:程序博客网 时间:2024/05/29 21:28

Java,C#,C++面向对象差异(继承,覆盖和多态,抽象类)

为了实现多态:
1.C#
基类方法要声明为virtual,派生类覆盖时要用override
2.C++
基类方法要声明为virtual,派生类方法直接覆盖;
3.java
直接覆盖就可以实现多态。

 

抽象类

C#示例
上面已经说明,虽然基类方法声明为virtual,以便派生类用override覆盖,但是派生类仍然可以用
new
关键字覆盖(不具有多态性)
可以强制让派生类覆盖基类的方法,将基类方法声明为抽象的,采用abstract关键字。
抽象方法没有方法体,由派生类来提供。

如果派生类不实现基类的抽象方法,则派生类也需要声明为abstract

java示例

java提供了抽象方法的机制abstract method,这种方法不完整,仅有声明
没有方法体
abstract void f();
包含抽象方法的类叫抽象类,如果类中包含一个或多个抽象方法,则该类必
须被声明为抽象类,用abstract来修饰抽象类。
如果从一个抽象类继承,并创建这个新类的对象,必须给抽象基类中所有抽
象方法提供方法定义,否则,派生类也是抽象类,也用abstract修饰。

 

关于抽象方法和抽象类javaC#比较类似;
C++叫纯虚函数和抽象类。

 

接口
C++
中的没有接口的概念,它本身就可以多继承。

java中接口interface比抽象类abstract更进了一步,可看做"纯粹的抽象类"
它允许创建者为一个类建立其形式,方法名,参数列表,返回类型,但没有
任何方法体。接口中也可以包含成员函数,但是他们都是隐含的public
final

创建接口时用interface来代替class,前面可以有public,如果不加访问权
限,那么它就是默认的包访问权限。
接口中的方法默认为public

类实现接口要用implements关键字。

 

 

 

 

常用函数或错误:

Float sal = Float.parseFloat(br.readLine())

//退出系统

System.exit(0);

//遍历HashMap中所有的keyvalue

Iterator it = hm.keySet().iterator();

 

HashMap hm = new HashMap();

可以写成

Map hm = new HashMap();

 

Math.floor(-4.7)                    //-5.0

Math.round(-4.7)                   //-5.0  返回最接近参数的

Math.ceil(-4.7)              //-4.0

 

//禁止用户改变窗体大小

                   this.setResizable(flase);

 

jl1 = new JLabel(new ImageIcon("imges/ss.jpg"));

相当于

jl1 = new JLabel(new ImageIcon("imges//ss.jpg"));

 

 

        //让程序随机产生一个1-10000的数

        int t = (int)(Math.random()*10000);

 

 

与日期和时间相关的类:

最常用几个类:

Date  表示日期和时间,没有考虑国际化的问题

DateFormat  java.text.DateFormatjava.text.SimpleDateFormat子类(这个类好多是过时了的方法)

Calendar   可以方便将现在日期加几天,几小时等  这个类几乎完全取代Date类,但有些情况不同

Calendar.add方法 可以方便将现在日期加几天,几小时等

Calendar.get方法

Calendar.set方法

Calendar.getInstanse静态方法

GregorianCalendar子类

DEMO 计算出距当前日期时间315天后的日期时间,并用"   小时 "的格式输出

DEMO 2002-03-15 格式日期转化为 2002315 的格式 java.text.SimpleDateFormat

 

日本当前时间:  

Calendar cJapan = new GregorianCalendar(TimeZone.getTimeZone("Japan"))

System.out.println(cJpan.get(Ca....))

getID()
          Gets the ID of this time zone

 

TimerTimerTask DEMO

schedule方法可以设定隔多长时间执行等功能

 

 

时间日期格式化

java.text.SimpleDateFormat dateFormat = 

      new java.text.SimpleDateFormat("yyyy-MMMM-dd"); 

String now = dateFormat.format(new java.util.Date());

 

日期时间作格式设置:DateFormatDemo      DateTimeInstanceDemo         DateTimeInstanceDemo2 Locale

单独取得某个日期时间:CalendarDemo

 

 

传智API (2010高新技术)

     String类和StringBuffer[X1] 

 

字符常量,,转义字符:

/r  表示接受键盘输入,相当于按下了回车键

/n         换行

/t  制表符,相当于’table’

/b  退格键,相当于Back Space

 

System类与runtime

runtime类只能由Runtime.getRuntime静态方法创建

Runtime里好多方法与System里的方法重复了

 DEMO Java程序中启动一个Windows记事本程序的运行实例,并在此运行实例中打开这个java程序的源文件,启动的记事本程序5秒钟后关闭

 

命令行设置虚拟机属性 –d

Properties sp = System.getProperties() ;

try{Thread.sleep(1);} catch(Exception e){}

//线程停1毫秒

java.lang.Runtime.getRuntime().exec("shutdown -h now");          //关机命令

 

享元模式 (flyweight)

 

 

myEclipse操作:

数据库连接文件导出导入

SQL Editor   选中语句  只会运行此语句

导出ER关系图

SQL History  右键查看 SQL语句

 

项目中加载JDBC距动  右键build path  add to build path

项目发布  

 MyEclipse使用技巧

windows Preferences 

java Compiler        编译用的

java Installed JREs        运行用的

个性化 工作间                    

 

约瑟夫问题  DMEO  Josephu

形成链表 demo

 

对象数组

DEMO

//数组对象在定义后,赋值时需要再次为每个对象分配空间 即用new

数组大小 必须事先指定

数组名可以理解为执行数组首地址的引用

 

位运算符   按位与 按位或....

移位运算符        >>>

 

在子类的构造函数中调用父类的构造函数

Super(   );

 


String x = “a”+4+”4” 等效于:String x = new StringBuffer().append(“a”).append(4).append(“c”).toString() ;

字符串常量(如hello)实际上是一种特殊的匿名Strign对象。

原创粉丝点击