`
Tony_Lee-S
  • 浏览: 82503 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
在继承的层次结构中,随着每个新子类的出现,类会变得越来越明确和具体。如果从一个子类追溯到父类,类就会变得更通用、更加不明确。类的设计应该确保父类包含它的子类的共同特征。有时候,一个父类设计得非常抽象,以至于它都没有任何具体的实例。这样的类称为抽象类。 把一个GeometricObject类定义成Circle类和Rectangle类的父类。GeometricObject类模拟了几何对象的共同特征。Circle类和Rectangle类都包含分别计算圆和矩形的面积和周长的方法getArea()和getDiameter()。因为可以计算所有几何对象的面积和周长,所以最好在GeometricObject ...
经常需要允许子类访问定义在父类中的数据域或方法,但不允许非子类访问这些数据域和方法。可以使用关键字protected完成该功能。父类中被保护的数据域或方法可以在它的子类中访问。 修饰符private、protected和public都称为可见 ...
Java提供ArrayList类来存储不限定个数的对象。下面是ArrayList中的一些方法。 ArrayList() 创建一个空的线性表   add(o: Object) 在这个线性表的末尾追加一个新元素o   add(index: int, o: Object) 在这个线性表中的特定下标处增加一个新元素o   clear() 从这个线性表中删除所有的元素   contains(o: Object) 如果这个线性表包含元素o则返回true   get(index: int) 返回这个线性表在特定下标处的元素   indexOf(o: Object) 返回 ...
语句 m(new Student());将对象new Student()赋值给一个Object类型的参数。这条语句等价于 Object o = new Student(); m(o); 由于Student的实例自动地就是Object的实例,所以,语句Object o = new Student()是合法的,它称为隐式转换。 假设想使用下面的语句把对象引用o赋值给Student类型的变量: Student b = o; 在这种情况下,将会发生编译错误。为什么语句Object o = new Student()可以运行,而语句Student b = o不行呢?原因是Student对象总是 ...
一个方法可以在父类中定义而在它的子类中覆盖。考虑下面的代码:   Object o new GeometricObject(); System.out.println(o.toString()); 这里的o调用哪个toString()呢?为了回答这个问题,我们首先介绍两个术语:声明类型和实际类型。一个变量必须被声明为某种类型。变量的这个类型称为它的声明类型。这里,o的声明类型是Object。一个引用类型变量可以是一个null值或者是一个对声明类型实例的引用。实例可以使用声明类型或它的子类型的构造方法创建。变量的实际类型是被变量引用的对象的实际类。这里,o的实际类型是GeometricO ...
考虑继承时值得注意的几点 和传统的理解相反,子类并不是父类的一个子集。实际上,一个子类通常比它的父类包含更多的信息和方法。 父类中的私有数据域在该类之外是不可访问的。因此,不能在子类中直接使用它们。但是,如果父类中定义了公共的访问器/修改器,那么可以通过这些公共的访问器/修改器来访问和修改它们。 不是所有的“是”关系(is-a)都该用继承来建模。例如:一个正方形是一个矩形,但是不应该定义一个Square类来扩展Rectangle类,因为没有任何东西可以从矩形扩展(或者补充)到正方形。所以,应该定义一个扩展自GeometricObject类的Square类。如果要用类B去扩展类A,那么A应 ...
一、内聚性 类应该描述一个单一的实体,而所有的类操作应该在逻辑上相互配合,支持一个连贯性的目标。例如:可以专门为学生使用一个类,但不应该将学生与教职式组合在同一个类中,因为学生和教职工是不同的实体 ...
String类包含在String类中的静态format方法,它可以创建一个格式化的字符串。调用该方法的语法是: String.format(format,item1,item2,...,itemk) 这个方法很像printf方法,只是format方法返回一个格式化的字符串,而printf方法显示一个格式化的字符串。例如: String s = String.format("%5.2f",45.556);   创建一个格式化的字符串"45.56"。
可以通过指定某个模式来匹配、替换或分隔一个字符串。这是一种非常有用且功能强大的特性,通常称为正则表达式。 以String类中的matches方法开始。乍一看,matches方法和equals方法非常相似。例如,下面两条语句的值均为true: "Java”.matches("Java"); "Java".equals("Java");   但是,matches方法的功能更强大。它不仅可以匹配定长的字符串,还能匹配一套遵从某种模式的字符串。例如,下面语句的结果均为true: "Java is fun" ...
字符串类String 字符串的比较 equals(s1:String) 如果这个字符串等于字符串s1,则返回true equalsIgnoreCase(s1:String) 如果不区分大小写这个字符串等于字符串s1,则返回true compareTo(s1:String) 返回一个大于0、等于0或小于0的整数以表明这个字符串是大于、等于还是小于s1 compareToIgnoreCase(s1:String) 除了不区分大小写之外,其他都和compareTo是一样的 regionMatches(index:int,s1:String,s1Index:int,len:int) 如果这个字符 ...
一:不同的layout Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢?    其实很简单,只需要在res目录下创建不同的layout文件夹,比如layout-640x360,layout-800x480,所有的layout文件在编译之后都会写入R.java里,而系统会根据屏幕的大小自己选择合适的layout进行使用。 二:hdpi、mdpi、ldpi 在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是 ...
一、错误:Unknown host api.tudou.com, throwing UnknownHostException。       解决办法:在AndroidManifest.xml中添加 二、Unable to find explicit activity class  have you declared this activity in your AndroidManifest.xml?      解决办法:在AndroidManifest.xml的application段添加声明:,详情见:                     http://stackoverflow.com/ ...
通用的布局方法: android:id 为控件指定相应的ID android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:grivity 指定控件的基本位置,比如说居中,居右等位置 android:textSize 指定控件 ...
设置普通监听器 class XXX implements OnClickListener{ @Override public void onClick(View v){ … … } } 设置ListView的监听器 protected void onListItemClick(ListView l, View v, int position, long id) { // TODO Auto-generated method stub super.onListItemClick(l, v, position, id); … … }
1.对于简单的两个Activity public class A_activity extends Activity {       public static A_activity _instance = null;          @Override          protected void onCreate(Bundle savedInstanceState) {                // TODO Auto-generated method stub                super.onCreate(savedInstanceState);        ...
Global site tag (gtag.js) - Google Analytics