2016年12月15日星期四

@Override用法详解

 现在有Son和Parent两个类,且类型Son将会重写类型Parent的getName函数。但不幸的是由于码农大意,写成如下代码:
public class Parent{
  public String getName(){
     return "Parent";
  }
}

public class Son extends Parent{
   public String getNames(){
     return "Son";
   }
}
  上述代码编译通过且人工无意识到实现错误,悲剧发生了。。。。。。。。
  这时使用 @Override注解 就不会再发生这种问题了!

@Override注解                        
  作用:当子类函数添加 @Override 后,该函数重写父类中签名相同的函数,否则将会编译失败。
  注意: @Override 仅提供一种辅助功能提示函数为父类函数的重写,并非重写的必要条件。即使没有该注解,只要子类函数的签名与父类的相同,该子类函数就重写了父类相应的函数了。

2016年12月7日星期三

几个全球电子图书馆名单

1、中国国家图书馆 (速度较慢)
http://www.nlc.gov.cn

2、中国在线 (资源匮乏)
http://www.cnpeak.com

3、中国学术会议在线 (主要介绍学术会议时间)
http://www.meeting.edu.cn/meeting/

4、中国科技论文在线精品论文 (可以免费下载)
http://highlights.paper.edu.cn

5、汉斯出版社中文学术期刊 (速度很慢)
http://www.hanspub.org

6、国家科技图书文献中心 (速度慢,还要收费)
http://www.nstl.gov.cn

7. 计算机程序设计电子书 (要收费)
http://www.downloadfreepdf.com

2016年12月2日星期五

2016年12月1日星期四

android中的数据存取方式一:preference(配置)

     preference(配置)方式应该是用起来最简单的Android读写外部数据的方法了。它的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一样,以一种简单、 透明的方式来保存一些用户个性化设置的字体、颜色、位置等参数信息。一般的应用程序都会提供“设置”或者“首选项”的这样的界面,那么这些设置最后就可以通过Preferences来保存,而程序员不需要知道它到底以什么形式保存的,保存在了什么地方。当然,如果你愿意保存其它的东西,也没有什么限制。只是在性能上不知道会有什么问题。

在Android系统中,这些信息以XML文件的形式保存在/data/data/PACKAGE_NAME/shared_prefs 目录下。
数据读取
  1. String PREFS_NAME = "Note.sample.roiding.com";  
  2. SharedPreferences settings = getSharedPreferences(PREFS_NAME,  0);  
  3.  boolean silent = settings.getBoolean("silentMode"false);  
  4. String hello = settings.getString( "hello""Hi"); 
String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
String hello = settings.getString("hello", "Hi");
这段代码中:
  • SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    通过名称,得到一个SharedPreferences,顾名思义,这个Preferences是共享的,共享的范围据现在同一个Package中,这里面说所的Package和Java里面的那个Package不同,貌似这里面的Package是指在AndroidManifest.xml文件中:

    1. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    2.  package="com.roiding.sample.note" 
    3.  android:versionCode="1" 
    4.  android:versionName="1.0.0"> 
    boolean silent = settings.getBoolean(”silentMode”, false);
  • 获得一个boolean值,这里就会看到用Preferences的好处了:可以提供一个缺省值。也就是说如果Preference中不存在这个值的话,那么就用后面的值作为返回指,这样就省去了我们的if什么什么为空的判断。
数据写入
  1. String PREFS_NAME = "Note.sample.roiding.com";  
  2. SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);  
  3. SharedPreferences.Editor editor = settings.edit();  
  4. editor.putBoolean("silentMode"true);  
  5. editor.putString("hello""Hello~");  
  6. editor.commit(); 
String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", true);
editor.putString("hello", "Hello~");
editor.commit();
有了上面数据读取的代码,这里面的就容易理解了,只是别忘了最后的commit();