囝勇

囝勇的笔记

来自Java4Android 23 抽象类和抽象函数(0)

抽象函数:只有函数的定义,没有函数体的函数。eg:abstract void fun(); 抽象类称为“基类”重点:1.抽象类不可以生成对象2.如果类中有抽象函数,那么这个类必须声明为抽象类(abstract首字母)3.如果一个类中没有抽象函数,那么这个类也可以被声明为抽象类。(用作最基本的父类,不可直接调用父类,防止让别人生成对象)为什么调用不了抽象类?答案:因为抽象类里的抽象函数没有方法体,这个问题没法解决。并且抽象类只能用作父类,只能继承,他的子类可以生成对象,可以复写抽象类的函数体,调用抽象类的构造函数。

来自Java4Android 30 Java中的异常-1(0)

异常:中断了正常指令流的事件,在程序运行时指令执行过程是中断。它与编译无关!(语法,拼写……) 异常的分类:RuntimeException意为uncheck exception(执行时报出,可编译)。有许多子类:ArithmeticException。。。。。 还有一种为check exception(在编译是报出,无法编译) 结局异常的方法:在uncheck expetion中:class Test{ public static void main(String arge[]){ System.out.println(1); /*try catch结构, try里面放有异常的代码,运行到异常时后面就接着跳到catch代码,执行catch代码 如果try里没有异常代码,则不执行catch代码 */ try{ System.out.println(2); int i = 1 / 1; System.out.println(3); } catch(Exception e){ e.printStackTrace();//打印异常信息 System.out.println(4); } //finally是无论如何也要编译的,也是异常的出口,在try或catch无法编译时,finally起到了作用。 finally{ System.out.println("hello world"); } System.out.println(5); }} 在check exception中:class TestCheck{ public static void main(String arge[]){ try{ Thread.sleep(1000); } catch(Exception e){ e.printStackTrace(); } }}  

来自Java4Android 31 Java中的异常-2(0)

throw关键字:在java虚拟机判断不出时,比如年龄是负数时就生成一个异常对象,抛出一个异常。抛出对象:class User{ private int age; public void setAge(int age){ if (age < 0){ //设置一个异常处理对象 RuntimeException e = new RuntimeException("年龄不能为负数"); throw e;//抛出一个异常对象 } this.age = age; }} throws关键字:声明一个函数有可能会产生异常,不对函数进行处理,而在调用函数时对异常进行处理。class User{ private int age; public void setAge(int age)throws Exception{if (age < 0){ //set..有可能产生exception对象,声明该函数会产生exception //先声明,谁调用谁处理,而不是现在,所以编译可以成功. //设置一个异常处理对象 Exception e = new RuntimeException("年龄不能为负数"); throw e;//抛出一个异常对象 } this.age = age; }}

来自Java4Android 25 包和访问权限(0)

重点:1.软件包为java类提供了命名空间2.打包需要使用package指令3.一个类的全名应该是“包名” + “类名”//将类放置到一个包当中,使用关键字package;//编译时时使用-d参数,该参数作用是创建包名生成相应的文件夹/*一个类的全名应该是"包名" + "." + "类名"eg:wu.Test*//*包名的命名规范:1.要求报名所有的字母要小写2.包名一般情况下,是你的域名倒过来写;eg:wu.com*/package com.wu;//com范围最大放前,范围越小放越后;class Test{public static void main(String arge[]){System.out.println("Hello package");}}注:编译时使用javac -d . xx.java生成相应的包名运行时输入:“包名”+“文件名”

来自Java4Android 32 Java当中的IO-1(0)

I/O系统(input,output) 从一个数据源读取到java的程序,称为输入流,(写,读取)从一个java程序到达数据源,称为输出流。所谓流,就是程序到数据源建立管道传输,大部分为单向流。IO流的分类:第一张分类:1.输入流2.输出流(以上讲的内容)第二种分类:1.字节流(比如MP3 MP4等以字节为主的文件)2.字符流(以文本等以字符为主的文件)第三种分类:(javaIO系统里非常巧妙的设计模式,暂时未知!)1.节点流2.处理流(在节点流的基础上再加工) 字节流的核心类:inputStream       父类(抽象)      OutputStreamFilelnputStream       子类            FileOnputStream用硬盘的文件来读取数据              把数据写入到硬盘的文件核心类的核心方法:InputStream:int read (byte[] b, int off , int len)  byte[] b:要读取的数据,变为比特类型  int off:偏移量,意思为从哪一位开始读取  int len: 规定读取的长度OutputStream:void write (byte[] b, int off, int len)  byte[] b:把要写入的数据变为比特类型。  int off:规定好偏移量后才写入  int len:规定写入的长度 输入流:如何输入数据(字节型)://第一步骤:导入类;import java.io.*;class Test{  public static void main(String arge[]){     //声明输入流引用     FileInputStream fis = null;     try{       //生成代表输入流的对象       fis = new FileInputStream("E:/work/android/src/from.txt");       //生成一个字节的数组       byte [] buffer = new byte[100];       //调用输入流对象的read方法,读取数据,读的都是字节!       fis.read(buffer,0,buffer.length);       /*当有偏移量时,数组长度也必须减去相对的偏移量,否则会       照成越界*/       for(int i = 0; i < buffer.length; i++){          System.out.println(buffer[i]);       }     }     catch(Exception e){       System.out.println(e);     }  }} 如何输入数据(字符型)://第一步骤:导入类;import java.io.*;class Test{  public static void main(String arge[]){     //声明输入流引用     FileInputStream fis = null;     try{       //生成代表输入流的对象       fis = new FileInputStream("E:/work/android/src/from.txt");       //生成一个字节的数组       byte [] buffer = new byte[100];       //调用输入流对象的read方法,读取数据,读的都是字节!       fis.read(buffer,0,buffer.length);       String s = new String(buffer);       /*如果打印出空字符和空格时,需调用String里的trim方法       将会去除字符串的首尾空格和空字符       s = s.trim();       */       System.out.println(s);     }     catch(Exception e){       System.out.println(e);     }  }}  输出流://第一步骤:导入类;import java.io.*;class Test{ public static void main(String arge[]){ //声明输入流引用 FileInputStream fis = null; //声明输出流的引用 FileOutputStream fos = null; try{ //生成代表输入流的对象 fis = new FileInputStream("E:/work/android/src/from.txt"); //生成代表代表输出流的对象 fos = new FileOutputStream("e:/work/android/src/to.txt"); //生成一个字节的数组 byte [] buffer = new byte[100]; //调用输入流对象的read方法,读取数据,读的都是字节! int temp = fis.read(buffer,0,buffer.length); fos.write(buffer,0,temp); } catch(Exception e){ System.out.println(e); } }}