java 编程笔记
来源:互联网 发布:广东裤哥战哭淘宝女郎 编辑:程序博客网 时间:2024/06/18 00:39
程序中的简单封装。比如:我们做一个加减乘除的四则运算,那么我们只需要对外界提供四个方法,用户只需要调用方法传入正确的参数,我们的程序就能给出正确答案,用户根本不知道我们内部是怎么实现。
b. 子类中就是继承父类里的变量和方法(注意:是不是真的能继承,还看父类变量和方法的访问修饰符是什么,例如private修饰的变量和方法就不能继承)。
c.父类的构造凼数没有被继承,这里所说的意思是指在实例化子类的对象时,在new后面不能调用父类的构造凼数,但是可以在子类的构造凼数里使用super来调用父类的构造凼数,如果没有写super这句调用,子类会自动调用父类无参的构造凼数(但要确保无参构造凼数存在,否则会出错)
d. 可以new一个子类的对象赋给一个父类的变量,当通过这个父类的变量执行方法时,其实是执行的子类的方法。
以下是我对多态的认识:
1.Java中除了static和final方法外,其他所有的方法都是运行时绑定的。在我另外一篇文章中说到private方法都被隐式指定为final的,因此final的方法不会在运行时绑定。当在派生类中重写基类中static、final、或private方法时,实质上是创建了一个新的方法。
2.在派生类中,对于基类中的private方法,最好采用不同的名字。
3.包含抽象方法的类叫做抽象类。注意定义里面包含这样的意思,只要类中包含一个抽象方法,该类就是抽象类。抽象类在派生中就是作为基类的角色,为不同的子类提供通用的接口。
4.对象清理的顺序和创建的顺序相反,当然前提是自己想手动清理对象,因为大家都知道Java垃圾回收器。
5.在基类的构造方法中小心调用基类中被重写的方法,这里涉及到对象初始化顺序。
6.构造方法是被隐式声明为static方法。
7.用继承表达行为间的差异,用字段表达状态上的变化。
为了给你讲明白,我再给你写个例子
public Class Parents {
public void print() {
System.out.println(“parents”);
}
}
public Class Father extends Parents {
public void print() {
System.out.println(“father”);
}
}
public Class Mother extends Parents {
public void print() {
System.out.println(“mother”);
}
}
public Class Test {
public void find(Parents p) {
p.print();
}
public static void main(String[] args) {
Test t = new Test();
Father f = new Father();
Mother m = new Mother();
t.find(f);
t.find(m);
}
}
打开和访问网络上的对象,其便利程度如同访问本地文件系统一样。
采用的指针模型可以消除重写内存和损坏数据的可能性。
(十)动态性
当需要将某些代码添加到正在运行的程序中,动态性将是一个非常重要的特性。在Java中找出运行时刻类型信息十分直观。
内部类
- 内部类与组合是完全不同的概念,这一点很重要。
为什么需要内部类? — 主要是解决了多继承的问题,继承具体或抽象类
- 一般来说,内部类继承自某个类或实现某个接口,内部类的代码操作创建它的外围类的对象。所以可以认为内部类提供了某种进入其外围类的窗口。
- 内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。
- 如果没有内部类提供的、可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效的实现了“多重继承”。也就是说,内部类允许继承多个非接口类型。
考虑这样一种情形:如果必须在一个类中以某种方式实现两个接口。由于接口的灵活性,你有两种选择:使用单一类或者使用内部类。但如果拥有的是抽象的类或具体的类,而不是接口,那就只能使用内部类才能实现多重继承。
使用内部类,还可以获得其他一些特性:
- 内部类可以有多个实例,每个实例都有自己的状态信息,并且与其外围类对象的信息相互独立。
- 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口或继承同一个类。
- 创建内部类对象的时刻并不依赖于外围类对象的创建。
- 内部类并没有令人迷惑的is-a关系,它就是一个独立的实体。
- Java编程思想 笔记
- Java网络编程笔记
- 《java编程思想》笔记
- java编程思想笔记
- Java编程思想笔记
- java网络编程笔记
- java编程思想笔记
- 《java编程实战》笔记
- Java Socket编程笔记
- java笔记-GUI编程
- java编程思想 笔记
- java编程思想笔记
- java 编程思想 笔记
- java并发编程笔记
- 《Java编程思想》笔记
- Java编程思想 笔记
- Java 多线程编程 笔记
- Java并发编程笔记
- 性能优化,进无止境---内存篇(上)
- 性能优化,进无止境---内存篇
- 【安卓笔记】成长第四步,Serializable接口与Parcelable接口
- 蓝桥杯五7六角填空暴力ORdfs
- Geekband002第二周笔记分享
- java 编程笔记
- redis-linux 安装配置以及使用手册
- rpmdb open failed 的解决办法
- 随手记----Android仿iOS音量调节的效果
- 《基于MFC的OpenGL编程》Part 9 Texture Mapping
- iOS中按钮边框及文字对齐设置
- 最近邻居法KNN
- PropertyPlaceholderConfigurer的用法
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d723