JAVA 笔记(五)

  1. ClassCastExcption:类型转换异常(一般出现在多态的向下转型中容易出现)。
  2. 大的对象不能直接给小的(自己揣测的)
  3. 重写的方法,先在子类中查找,没有再在父类中查找。
  4. 子类中没有父类中出现过的方法,方法就被继承过来了。
  5. 在java中一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类。(abstract)
  6. 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类。
  7. 抽象方法不能有主体就是不能有{}。
  8. 抽象类不能实例化。(因为它不是具体的)
  9. 抽象类有构造方法,但是不能实例化(它的作用是用于子类访问父类数据的初始化)
  10. 抽象类的子类A;如果不想重写抽象方法,该子类是一个抽象类。B;重写所有的抽象方法,这个时候子类是一个具体的类。
  11. 抽象类的实例化其实是通过具体的子类实现的,是多态的方式 Animal a=new Cat();
  12. 抽象类的成员方法特性:A;抽象方法 强制子类做的事情 B;非抽象方法 子类继承的事情,提高代码复用性。
  13. 抽象方法的格式 public abstract void eat();   。
  14. 一个类如果没有抽象方法,也可以定义为抽象类,这样做的意义就是不让创建对象。
  15. Abstract 不能和private(产生冲突) 、final(产生冲突)、static(无意义,类的调用没有方法体,故没有意义)这些关键字共存。
  16. 接口(interface)是扩展性的功能。
  17. Class 类名 implements 接口名{}
  18. 接口本身不能实例化。接口的子类A;可以是抽象类,但是意义不大。B;可以是具体的类,要重写接口中的所有抽象方法。
  19. 接口中的变量默认是常量,不管是否加了final.并且是静态的(因为有默认修饰符public static final).接口没有构造方法。那么子类如何实例化呢?因为所有的类都默认继承object类,所以可以通过该类实例化。接口中的成员方法只能是抽象方法,默认修饰符:public abstract(建议自己给出)。
  20. 可以同时实现多个接口。接口与接口之间的继承关系,可以是单继承,也可以是多继承(interface Sister extends father,mother{});
  21. 抽象类与接口的设计理念的区别:抽象类:被继承体现的是is a (是xx)的关系。抽象类中定义的是该继承体系的共性功能。接口:被实现体现的是like  a(像xx)的关系,接口中定义的是该继承体系的扩展功能。
  22. 分析:从具体到抽象。实现:从抽象到具体 。使用:使用具体的。
  23. 形式参数如果是引用类型:A;类名(需要的是该类的对象)B;抽象类:需要的是该抽象类的子类对象。C;接口:需要的是该接口的实现类对象。
  24. 返回值类型如果是引用类型:A;类:返回的是该类的对象。 B:抽象类:返回的是该抽象类的子类对象。C接口:返回的是该接口的实现类的对象。
  25. 链式编程的特点:每次调用完毕之后,返回的是一个对象。(A.B().C());
  26. 包:(其实就是文件夹)作用:A;把相同的类名放到不同的包中B;对类进行分类管理。
  27. 包的定义:package 包名;多级包用.分开即可。注意事项:A;package语句必须是程序的第一条可执行的代码B;package语句在一个java文件中只能有一个C;如果没有package,默认表示无包名。
  28. 带包的编译和运行:A;手动式1.编写一个带包的java文件2.通过javac命令编译该java文件3.手动创建包名4.把2步骤的的class文件放到3步骤的的最底层包5.回到包根目录在同一目录的地方,然后带包运行。B;自动式:1.编写一个带包的java文件2:javac编译的时候带上-d即可(javac –d .helloworld)3;回到和包根目录在同一目录的地方,然后带包运行。
  29. 导入包的时候最好导到类,不要用星Package(只能有一个)>import(可以有多个)>class(可以有多个,建议是一个)(这是三者的顺序关系)
  30. 权限修饰符:public(同一类中,同一包【子类,其他类】,不同包【子类】,不同包【其他类】都可以访问)protect(同一类中,同一包【子类,其他类】,不同包【子类】可以访问)默认修饰符(同一类中,同一包【子类,其他类】可以访问)private(同一类中可以访问)访问权限依次减小。这四种权限修饰符在任意时刻只能出现一种。
  31. 状态修饰符(static final)抽象修饰符(abstract)
  32. 修饰类的有(默认修饰符,public,fianl,  abstract)不能是(private protected static[可以修饰内部类]).(用得最多的是public)成员变量除了abstract都可以修饰。(用的最多的是private)(局部成员变量不能用private修饰) 构造方法只能是权限修饰符修饰。(用得最多的是public)所有的修饰符都可以修饰方法(用的最多的是public)
  33. 把类定义在其它类的内部,这个类就称为内部类。
  34. 内部类可以直接访问外部类的成员,包括私有。外部类要访问内部类的成员,必须创建对象(内部类对象)
  35. 内部类的位置:成员位置:在成员位置定义的类,称为成员内部类。局部位置(就是在方法里面):在局部位置定义的类,称为局部内部类。
  36. 如何直接访问内部类成员(外部类名.内部类名 对象名=外部类对象.内部类对象)对象是new xx();
  37. 成员内部类被静态修饰后的访问方式是:外部类名.内部类名 对象名=new 外部类名.内部类名();
  38. 成员内部类的修饰符:private 为了保证数据的安全性 static:为了方便 访问数据(注意:静态内部类访问的外部类数据必须是静态)
  39. 注意:内部类和外部类没有继承关系。可以通过外部类名限定this对象。(xxx.this).
  40. 局部内部类A;可以直接访问外部类的成员B;在局部位置,可以创建内部类对象,通过对象调用内部类的方法,来使用局部内部类功能。------》待续
时间: 2024-11-09 04:31:59

JAVA 笔记(五)的相关文章

JAVA笔记五

JAVA笔记 选择排序 0 1 2 3 4 3 1 0 2 9 将下标0依次和其他下标对比选择出最小的元素,再将下标1依次和其他下标对比选出最小的元素依次循环 每一次参与比较的元素进行减少:a.length-1 For(int i = 0 ;i<a.length-1;i++){ Int temp; For(int j =i+1;j<a.length;j++){ If(a[i]>a[j]){ Temp=a[i]; A[i]=a[j]; A[j]=temp } } } 冒泡排序:相邻的两个元

Java笔记五.多线程

Java中的多线程(一) 一.理解线程 1.进程.线程.多线程 1.进程:在多任务系统中,每个独立执行的程序(或说正在进行的程序)称为进程. 2.线程:一个进程中又可以包含一个或多个线程,一个线程就是一个程序内部的一条执行线索(一部分代码). 3.多线程:如果要一程序中实现多段代码同时交替运行,就需产生多个线程,并指定每个线程上所要运行的程序代码,即为多线程. 注:在单线程中,程序代码的执行是按调用顺序依次往下执行的,不能实现两端程序代码同时交替运行的效果.当我们的程序启动运行时,会自动产生一个

疯狂java笔记(五) - 系统交互、System、Runtime、Date类

一.程序与用户交互(Java的入口方法-main方法): 运行Java程序时,都必须提供一个main方法入口:public static void main(String[] args){} public:因为main方法里边可能包含同一包内或其他类的方法,为了保证能够正常执行该方法所以只能用该方法; static:调用主方法的时候不会先创建该主类的对象,而是直接通过该类来调用主方法的,所以使用static修饰; String[]:谁调用方法谁就为这个形参赋值,默认长度为0的数组 运行时:jav

java之jvm学习笔记五(实践写自己的类装载器)

java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类装载器和安全管理器是可以被动态扩展的,或者说,他们是可以由用户自己定制的,今天我们就是动手试试,怎么做这部分的实践,当然,在阅读本篇之前,至少要阅读过笔记三. 下面我们先来动态扩展一个类装载器,当然这只是一个比较小的demo,旨在让大家有个比较形象的概念. 第一步,首先定义自己的类装载器,从Clas

12.7-全栈Java笔记:Java网络编程(五)

UDP通讯的实现 1.DatagramSocket:用于发送或接收数据包 当服务器要向客户端发送数据时,需要在服务器端产生一个DatagramSocket对象,在客户端产生一个DatagramSocket对象.服务器端的DatagramSocket将DatagramPacket发送到网络上,然后被客户端的DatagramSocket接收. DatagramSocket有两种构造函数.一种是无需任何参数的,常用于客户端.另一种需要指定端口,常用于服务器. 常用方法:send.receive. cl

10.7-全栈Java笔记:常见流详解(五)

本节我们学习「常见流中的最后两项:转换流和随意访问文件流」~ 转换流 InputStreamReader/OutputStreamWriter用来实现将字节流转化成字符流.比如,如下场景: System.in是字节流对象, new BufferedReader(须接受Reader对象).我们就能将System.in转换成Reader对象,即可完成此场景. [示例1]使用InputStreamReader接受用户的输入 BufferedReader bReader= null; try { Sys

14.5-全栈Java笔记:java.awt这些布局怎么写?|流式|边界|网格

布局管理器 读者会发现,如果使用坐标定位法(空布局),在一个比较复杂的界面上定位每个控件的坐标是一个非常麻烦的工作,而且在界面大小发生改变时,控件的绝对位置也不会随之发生改变.那么如果我们想让用户界面上的组件可以按照不同的方式进行排列怎么办?例如:可以依序水平排列,或者按网格方式进行排列等,其实每种排列方案都是指组件的一种"布局",要管理这些布局,就需要本节学习的布局管理器. 管理布局的类由java.awt包来提供,布局管理器是一组实现java.awt.LayoutManager接口的

Java解惑五:类之谜

本文是依据JAVA解惑这本书,做的笔记.电子书见:http://download.csdn.net/detail/u010378705/7527721 谜题46 函数重载的问题. JAVA重载解析过程:1. 选取全部可用的方法或者构造器:2. 从过程1中选取的方法或构造器中选择最精确的. 一般而言:能够强制要求编译器选择一个精确的重载版本号,将实參转型为形參所声明的类型. 谜题47 继承中静态域的问题. 静态域由声明它的类及其全部子类共享. 假设须要让每个子类都具有某个域的单独拷贝,必须在每个子

Java 笔记(8)

JSP 技术 day8 JSP语法 + EL + JSTL day9 案例 2-3 个 综合小案例 day10 Servlet+JSP 综合练习 为什么sun推出 JSP技术 ? Servlet 生成网页比较复杂,本身不支持HTML语法,html代码需要通过response输出流输出,JSP支持HTML语法,生成HTML方便. JSP技术与Servlet 技术区别和关系? JSP和Servlet技术都是用来动态生成网页的,Servlet不支持HTML语法,生成网页麻烦,JSP支持HTML语法,生

java笔记整理

Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, Ejb, java和模式 Linux/Unix笔记 inode :存储编号(地址) ls -k:查看磁盘分区 ls -li:显示当前文件的inode号. 目录的大小跟文件的大小有关,跟目录里的文件(目录)数量无关. 一行多个命令的话,中间用分号分开.如:pwd;cal;date last | grep