Java小结
一.继承,多态,重写
1.继承:
降低工作量,降低程序的复杂性,使程序提高可扩展性......
一个类继承另一个类(一个接口继承另一个接口)的关键字是extends,类之间的继承只能一对一,不能继承多个类。
继承的格式:public class子类名extends父类名{}
一个类继承接口的关键字是implements;一个类可以继承多个接口,接口之间用逗号隔开;继承的格式:public class类名implements接口名,接口名……{}
继承到了什么
子类继承到了父类的所有公有属性和公有方法,构造函数是不能被继承的。
2.多态:
多态是指:虽然是同一类型的对象,但在具体的调用时,由于继承和重写机制,方法执行的结果不同。也就是,只有运行时才知道结果是什么,这是Java和其他编程语言的一个不同点。
3.重写:
重写是指,在子类中对从父类继承来的方法进行重写,即保持方法定义的不变,但方法内部实现同父类的不同。下面用一个列子来把这三个东东联系起来。
先写一个StudentModle接口
public interface StudentModle{
public void study();
public void play();
}
写一个Student类继承StudentModle接口
public class Student implements StudentModle{
//实现接口中的方法
public void study(){
System.out.println(“我在学习中……”);
}
public void play(){
System.out.println(“我在游戏中……”);
}
}
好了,在写一个UNStudent子类来继承父类Student类
public class UNStudent extends student{
//重写父类的study方法
java线程池创建的四种
public void study(){
System.out.println(“我是大学生,我在学习……“);
//子类特有的方法
public void makeGF(){
System.out.println(“我在约会呢……”);
}
}
}
线索已经十分清晰了,UNStudent类的对象可以掉用父类中的所有方法,同时又具有自己独特的方法。
二.数据类型、值传递和引用传递有什么区别,String是什么传递
1.数据类型:
Java中的数据类型分为两大类,即原始数据类型和对象类型(或引用类型),后者是由Java 类生成的对象的类型。
其中基本类型包括:byte(1字节),int(4字节),short(2字节),long(8字节),char(2字节),float(4字节),double(8字节),boolean(true/flase)。
2.值传递:
值传递只要指在基本数据类型之间在调用传递时遵守的规则。
即:将目标变量的值重新拷贝一份,传递到新的变量中,这样就形成了两份独立的数据。如果对新的变量的值做任何修改,是不会影响到目标变量的值;反之一样。
3.引用传递:
引用传递:适用于所有的类类型(自定义的类类型),创建对象的时候,对象名中保存的是对象实例在内存中的地址,如果对对象名做修改,对象实例是不会受到影响的。4.Sting的传递:
首先,Sting是Java里面的一个特殊的类,而不是一种基本数据类型,它有自己的方法和属性,所以Sting的传递是引用传递。
三.3.Set如何遍历,有哪些子类、List如何遍历,有哪些子类、Map如何遍历,有哪些子类
Map中是否可以放入null的key或Vlaue?Set,List呢?
Set是一个接口,不能直接创建对象,它实现的子类有:HashSet<E>、TreeSet<E>、LinkedHashSet<E>、JobStateReasons、EnumSet<E extends Enum<E>>、CopyOnWriteArraySet<E>、ConcurrentSkipListSet<E>、AbstractSet<E>,其中常用的有HashSet<E>、TreeSet<E>两个。它的对象是一个无序的集合,要遍历则得到对象的迭代器,方法为:java.util.Iterator<E>iterator=对象名.iterator(),遍历时的格式为:
while(iterator.HasNext){
for(int i=0;i<;对象名.size();i++){
System.out.());
}
}
List也是一个接口,它实现的子类有:AbstractList,AbstractSequentialList,ArrayList, AttributeList,CopyOnWriteArrayList,LinkedList,RoleList,RoleUnresolvedList,Stack,Vector,其中,比较常用的有ArrayList,它的遍历方法用for循环来。格式为:
for(int i=0;i<;变量名.size();i++){
System.out.println(变量名.get(i));
}
Map同样是一个接口,它的子类有:AbstractMap,Attributes,AuthProvider, ConcurrentHashMap,ConcurrentSkipListMap,EnumMap,HashMap,Hashtable, IdentityHashMap,LinkedHashMap,PrinterStateReasons,Properties,Provider,RenderingHints, SimpleBindings,TabularDataSupport,TreeMap,UIDefaults,WeakHashMap。它的遍历比前面两个都复杂。它首先要得到Key的集合。格式为:java.util.Set<E>set=变量名.keySet();然后再
得到set的迭代器:java.util.Iterator<E>iterator=set.iterator();最后通过while循环;while(iterator.hasNext()){
E ();
Value值类型(string);
System.out.print(string+"\t"+count+"\n");
}
四.Swing界面相关,Swing组件的继承体系图、事件的继承体系图。1.Swing组件的继承体系图:
2.事件的继承体系图:
五.递归与循环的区别
一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。使用递归时应该注意:1)递归就是在过程或函数里调用自身;2)在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。
在很多种情况下,迭代和递归都可以完成相同的功能,不过递归有些功能迭代就完成不了。并且代码没有递归简洁,熟练使用递归后能提高代码质量。
循环是指一个过程或函数在其定义或说明中不断地重复某个过程,当不满足条件时退出循环,循环也必须有出口,否则就是死循环。其实递归是循环的一种特殊的形式。
六.I/O流继承体系结构图和分类。文件复制的实现,原始数据类型读写
2.文件复制的实现:
源码:
public class ReadFile{
public static void main(String args[]){
ReadFile rf=new ReadFile();
//文件的路径
String path="C:\\Documents and Settings\\Administrator\\桌面\\MATLAB 基础教程.pdf";
String dest="C:\\Documents and Settings\\Administrator\\桌面\\2.pdf";
//得到系统的时间戳
long start=System.currentTimeMillis();
//写文件
long end=System.currentTimeMillis();
long res=end-start;
System.out.println("复制完毕,耗费时间:"+res+"ms");
}
/**
*文件拷贝
*
*@param src:被拷贝的文件路径
*@param dest:拷贝后的文件路径
*/
public void copyFile(String src,String dest){
try{
FileInputStream fis=new FileInputStream(src); FileOutputStream fos=new FileOutputStream(dest);
int ad();
while(i!=-1){
//将读取到的字节写出去
fos.write(i);
/
/读取下一个字节
ad();
}
fos.flush();
fos.close();
fis.close();
}catch(Exception ef){
ef.printStackTrace();
}
}
}
3.原始数据读写:
源码:
public class DataText{
public static void main(String args[]){
DataText text=new DataText();
String path="C:\\Documents and Settings\\Administrator\\桌面\\保存"; text.saveFile(path);
text.OpenFile(path);
}
public void saveFile(String path){
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论