java中的类
2015-08-01 22:16
656 查看
目录
内部类局部类
匿名内部类
抽象类
学习问题
备注代码
内部类
内部类:在类的内部定义的类。内部类可以调用该外部类的属性。格式:class 类名{}
[code]public class Student { private int age; private String name; public class Pen{ //初学者注意:类名不能加括号() //内部类中可以调用外部类的name与age String color; String brand; String name; public String getName() { return name; } } }
局部类
局部类:在方法中定义的类。格式:class 类名{}
[code]public class Student { private int age; private String name; //这是一个学习的方法 public void study(){ System.out.println("正在学习"); //局部类 在方法中的类 class Books{ String name; int page; public int getPage() { return page; } public void setPage(int page) { this.page = page; } } }
匿名内部类(部分参考他人)
匿名内部类:匿名内部类就是没有名字的内部类。主要在观察者模式内使用,在Android主要事件里使用。如果满足下面的一些条件,使用匿名内部类是比较合适的:(1)当只是用一次这个类的对象时使用。
(2)类在定义后马上用到。
(3)类非常小(SUN推荐是在4行代码以下)
在使用匿名内部类时,要记住以下几个原则:
(1)匿名内部类不能强制造型
(2)匿名内部类不能有构造器。
(3)匿名内部类不能定义任何静态成员、方法和类。
(4)匿名内部类不能是public,protected,private,static。
(5)只能创建匿名内部类的一个实例。
(6)一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。
因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。
[code]//匿名内部类 Paper paper2=new Paper(){ public String getPapersize(){ return "B5"; } };//这里需要一个;号
[code]//在方法中返回一个匿名内部类 public class Parcel6 { public Contents cont() { return new Contents() { private int i = 11; public int value() { return i; } }; // 在这里需要一个分号 } public static void main(String[] args) { Parcel6 p = new Parcel6(); Contents c = p.cont(); } }
cont()方法将下面两个动作合并在一起:返回值的生成,与表示这个返回值的类的定义!
抽象类(abstract)
抽象类:在解决实际问题时,一般将父类定义为抽象类。利用abstrack定义抽象类。抽象类中的方法可以有抽象方法,也可以有其他的方法。也就是说抽象类不一定有抽象方法。格式:public abstract class+类名{}
注意:抽象类中不一定有抽象方法。
抽象类不能创建对象,抽象类中的抽象方法可以在子类中实现具体的方法。
例如:
[code]public abstract class Animal { public abstract void voice(); //此处为抽象方法,该方法的具体实现只能在子类中实现。 public void sleep(){ System.out.println("小动物们睡觉了"); } //此为具体的方法,可见抽象类中不一定必须是抽象的方法。 }
抽象方法:只有方法名没有方法体 无具体实现,可以在子类中实现。
注意: 抽象方法必须是在抽象类中。
抽象方法必须在抽象类中否则出错,如下:
相关文章推荐
- java发送post请求和get
- Struts2 注解中跳转 action
- 《写给大忙人看的java SE8》笔记 -- 3. 杂项改进与java7新特性
- [LeetCode][Java] Candy
- 开发 IDE 从 Eclipse 转移到 IntelliJ Idea 中
- JAVA如何获得数据库的字段及字段类型
- A Scala Tutorial for Java programmers之(一)Scala入门:Scala例子,以及如何与Java交互
- 对于jdk jre jvm的简单认识
- java线程创建的两个方法
- 一些javaer博客
- 23. Navigator javaEnabled() 方法
- Java程序设计之裴波拉切那数列(兔子一年的数量)
- [LeetCode][Java] Gas Station
- java中的异常处理
- JAVA基础一大堆0801接口+匿名类+IO流
- java培训 2015-07-31
- Java学习之路:不走弯路,就是捷径
- Java反射机制
- 余弦相似度-java代码实现
- Ubuntu Eclipse CDT 使用math数学函数库:对×××未定义的引用