




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java基础部分关键字:计算机语言中称那些赋予特殊意义的字符为关键字。关键字是有一定规定的。标识符:被我们赋予特殊意义的字符(标识符定义的规则:有字母、数字、美元、下划线组成,但是不能以数字开头,还有就是能不能把关键字当做标示符使用,严格区分大小写)Java中各种标识符命名规则:包名全部小写;类名接口名驼峰式命名(各个单词首字母大写);变量名、函数名(第一个单词首字母小写其他的首字母大写);常量名所有字母大写(多个单词之间用_连接)。java中的常量:java中固定不变的数值。包括:整数常量、小数常量、布尔型常量、字符常量、字符串常量、null常量。数据类型分为:基本数据类型和引用数据类型(数组)。转义字符:通过转换后面字母或者符号的含义。常见的转义字符:n:换行; b:退格,相当于backspace; r:按下回车键。在window中回车符是由两个字符来表示的rn; t:制表符,相当于tab键; :一个; :相当于;Java中整数的表现形式:二进制、八进制、十进制、十六进制。一个二进制为一bit,八个二进制表示一个字节(byte)。编码表:有专门的表示特殊含义的表就叫编码表。美式的叫ascii表。一个汉字相当于两个字符(编码表)进制的升级是为更短的表示数据,三位表示一位就是八进制,四位表示一位就是十六进制。进制转换:十进制转换为二进制原理:对十进制数进行除2运算反向取余数,直到不能被2除; 二进制转换为十进制原理:从右面开始每个数依次乘以2的n-1次冥的和。其他进制的转化:先转为二进制再以三位转变为八进制,先转为二进制再以四位转变为十六进制负数的二进制表现形式:二进制取反加1,负数的最高位是1,正数的最高位是0。整数的二进制就是它本身,负数高位添1补足,整数高位添0补足。变量:将不确定的数据进行存储,也就是需要在内存中开辟内存空间。如何开辟内存空间(明确数据类型、变量名称、数据),每个空间有规定的数据类型。当数据值不确定的时候但是需要对数据进行存储就使用变量来完成存储的动作。数据类型的划分:整数:byte(8个位) 、short(16个位)、 int (32个位)、long (64个位);浮点型:float、double;字符:char(.matches()方法:用于匹配字符串);布尔值:ture、 false。数据类型的转换:类型提升(提升的准则是自动小(位数小的)转大(位数大的)和强制转换b=(byte)(b+3)例如在小数中只需要整数部分的时候就只是需要进行数据强转。Java中基本的运算负数的取模运算;自增自减的先后顺序(a+先计算后加加;+a先加加后参与运算);字符串和任何数据使用+都是相连接,最终都会变成字符串;赋值运算:a+=2(一次运算,内部有自动转换动作)相当于a=a+2(这是二次运算),注意short a;a=a+2是会报错的,注意数据类型的统一;比较运算符:计算的结果都是boolean值,一个=和两个=的区别;逻辑运算符:逻辑运算符用于连接boolean类型的表达式。运算的结果也是boolean值。逻辑与&中只要两边的boolean表达式有一个是假就全为假,只有两边为真结果才为真;逻辑或|中只要两边的boolean有个为真结果就为真,只有两边为假结果才为假;异或和&差不多,不同之处在于当truetrue=flase两边都相同的时候结果是假两边不结果是true;逻辑非!:真非为假;假非为真;双与&:会发生短路(&无论左边是true还是false右边都计算但是&当左边为false右边不进行计算);双或|:会发生短路(两边都参与运算,但是当左边为true时右边不参与运算):位运算(对二进制数计算):32:3向左移2位,右边用原数的最高位的数字补上2:6向右移2位,左边的添0补上;结果就是原数除以2的移动的位数次冥;&、作为位运算的时候(0为假1为真)一个数异或两次还是那个数(用于数据加密加密狗密钥)反吗运算最简单算出2*8的计算(位运算的效率高于直接运算)所以等效于23两个整数值的交换(不需要中间变量):x=x+y;y=x-y;x=n-m;如果两个数的值比较大,则和容易超出int范围;n=nm;m=nm;n=nm;控制流程:条件语句:如果if后面没有大括号,就只控制靠得最近的一句语句(分号为界)。if else结构简写的格式:变量=(条件表达式)?表达式1:表达式2;三元运算符好处:可以简化if else结果,弊端是因为是一个运算符,所以必须要有一个结果。选择语句:switch (表达式)case 取值1:执行语句;break;default:选择的表达式的特点:switch (表达式)表达式值只接受byte 、short 、int、 char类型;case和default的书写位置没有关系但是执行的顺序是先执行case后执行default;直到遇到大括号或者是break才能跳出循环;多项选择的表达,尽量写上default。if和switch语句的选择原理:如果具体判断的数值不是很多而且符合byte 、short、int 、char类型使用switch,这样效率高;对区间判断或者结果为boolean类型判断使用if。循环语句:while循环格式。定义初始表达式: while (条件表达式)循环体(执行语句);while:先判断条件,只有条件满足了才执行循环体。do while:先做do后面的的循环体然后再判断条件,只有条件满足了才执行循环体。for循环:for (初始表达式; 循环表达式; 循环后的操作表达式)执行语句;变量有自己的作用域,对于for来讲如果将用于控制循环的增变量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中就被释放。for和while可以进行互换。如果需要定义循环增量,建议使用for循环。在for语句中,有多个表达式用逗号隔开。使用循环结构的条件:当对某些语句执行好多次。写循环的时候一定要明确什么需要循环和循环的控制条件。累加思想:通过变量记录每次变化的结果,通过循环的形式进行累加的动作。for嵌套:语句嵌套就是语句中还有语句。break:用于选择或者是循环,结束本循环,继续执行。continue:用于循环,结束本次循环,继续下一次循环。标号:给循环起名字。格式:名称:;break和continue单独存在时,下面不可以有任何语句,因为执行不到。函数:函数就是定义在类中具有特殊功能的一小段代码块。函数是为了调高程序的复用性,对代码进行抽取而产生函数。函数的格式:修饰符 返回值 函数名(形式参数类型 形式参数1,形式参数类型 形式参数2)执行代码;return返回值类型:函数运行后的结果的数据类型。参数类型:形式参数的数据类型。形式参数:就是一个变量,用于存储函数调用时传递过来的实际参数值。return:用于结束函数。返回值:该值会返回给调用者。函数的执行过程:mvc先找主函数,然后此去调用被调函数。函数的位置和main函数并列就可以,不管先后。Void:void代表的是函数没有具体的返回值的情况。当函数运算后没有具体的返回值时,这时返回值类型用一个特殊的关键字来标识。这个关键字就是void。当函数的返回值的类型为void是,函数中的return语句可以不写。因为系统会默认添加,但是你写也是可以的。函数的特点:定义函数可以将功能代码进行封装;:便于对该功能进行复用;:函数只有被调调用才能执行;:函数的出现提高了代码的复用性;:对于函数没有具体的返回值的情况,返回值类型关键字void表示。该函数的return语句在最后一行,可以不写。注意:函数中只能调用函数,不可以在函数内部定义函数。定义函数时,函数的结果应该返回给调用者,交由调用者处理。函数是程序中最小的功能单位。定义函数的注意事项:既然函数是一个独立的功能,那么该功能的运算结果是什么先明确;其实就是明确函数的返回值类型。在明确在定义该功能的过程中是否需要未知的内容参与运算。其实就是明确函数的参数列表(参数类型和个数)。在函数中尽量不要有输出语句,写成返回值返回给调用函数使用,要不就违背了函数的初衷。函数的重载(overload):在同一个类中,允许存在一个以上的同名函数,只要他们的参数的个数或者是参数类型不同即可。函数重载与返回值的类型无关(只要函数的名称一样参数列表不一样这样的函数就重载),只看参数列表。这样的话方便阅读,优化程序设计。函数重载的使用情况:当定义的功能相同,但是参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。数组:同一种类型数据的集合,其实数组就是容器。在数组中可以自动给数组中的元素从0开始编号,方便操作元素。数组的定义格式:元素类型 数组名=new 元素类型元素个数或者是数组长度; 或者:数组定义的第二种格式:元素类型 数组名=new 元素类型元素,元素,元素;内存结构:java程序在运行时,需要在内存中分配空间。为了提高运算效率,又对空间进行不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放。堆内存:数组和对象,通过new建立的实例都存放在堆内存中。每一个实例都有内存地址,实例中的变量都有默认的初始化值,实体不再被使用会被垃圾回收机制回收。方法区:主要存放类的相关信息,如类的信息(名字、类型和修饰符)、类变量(静态变量)的信息(数据类型、名字和修饰符)、方法的信息(名字、参数的个数和类型、返回值和修饰符)。数组操作常见的错误:ArrayIndexOutOfBoundsException:操作数组时,访问到了数组中不存在的角标;NullPointerException:当引用没有任何指向值为null的情况,该引用还再用于操作实体时发生错误空指针异常。数组操作:数组中有一个属性可以直接获取到数组元素的个数。.length获取:通常会用到遍历。for(int x,xarray.length,x+);排序:选择排序:就是选择特定的角标位置的然后找出对应的值。特点:内循环结束一次,最值出现在头角标位置上。冒泡排序:相邻的两个元素进行比较,如果符合条件换位。第一圈最值出现在最后一位。java中排序:Array.sort(array),实际开发使用的方式。定义功能获取key第一次出现在数组中的位置,如果返回是-1,那么就代表在数组中不存在。折半查找:就是真心话大冒险(数据是有序的,然后就从中间砍一半查找)。面向对象技术基础面向对象是相对面向过程而言,面向对象面向过程都是一种思想,面向过程强调的是功能行为,就是将功能封装对象,强调具备了功能的对象。面向对象是基于面向过程的。面向过程:我们需要做的就是动作的执行,面向对象:我们需要做的就是动作的指挥者。面向对象的特征:封装、继承、多态。程序的开发实际上就是找对象使用,没有对象就创建对象,以后还需要维护对象的关系。类和对象的关系:类就是对现实生活中事物的描述,而对象就是这类事物实实在在存在的个体。类对事物的描述实际上就是提取对象中共性内容(属性和行为属性就是类中的变量,行为就是类中的函数),对具体的抽象。映射到java中描述就是class定义的类,对象就是java在堆内存中通过new建立实体,它是类类型变量,它指向对象。对象中有默认初始化值和显示初始化值。java中指挥对象做事的格式:对象.对象成员;成员变量和局部变量的区别:作用范围:成员变量作用于整个类中,局部变量作用于函数或者是语句中。存储位置:成员变量存储在堆内存中,因为对象的存在才在内存中存在,局部变量存在栈内存中。既可以再本类中创建本类对象,也可以在本类中存在主函数匿名对象:new 类名().方法();在匿名类中调用属性是没有意义的,但是调用方法是有用的。使用方式1:当对对象的方法只调用一次时,使用匿名对象来调用,这样比较简化。如果对一个对象进行多个成员调用,必须给对象起个名字。使用方式1:可以将匿名对象作为实际参数进行传递。java的封装:影藏对象的属性和实现细节,仅仅对外提供公共访问方式。封装的好处:将变化隔离,便于使用,提高重用性,提高安全性。封装的原则:将不需要对外提供的内容都隐藏起来。把属性都隐藏,提供公共方法对其访问。private:私有,权限修饰符,用于修饰类中的成员,私有只有在本类中有效,类以外即使建立了对象也不能直接访问。私有仅仅是封装的一种表现形式。之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。构造函数:可以用于对象初始化,对象一建立就会调用与之相对应的构造函数,当一个类中没有定义构造函数,系统会默认给该类中加入一个空参数的构造函数。当函数中定义了构造函数,系统默认的构造函数就没有啦。构造函数的特点:函数名与类名相同,不定义返回值类型,不可以写return语句。构造函数和一般函数的不同之处:构造函数在对象一建立就被执行,给对象初始化,只能执行一次,而一般方法只有在对象调用是才能运行,给对象添加功能,可以被调用多次。当构造函数被私有化的时候,对象是不能建立的。使用构造函数的情况:当分析事物时,该事物就具备一些特性或者行为,将这些内容定义在构造函数中。构造代码块:给对象初始化。对象已建立就运行,而且优先于够着函数执行。构造代码块和构造函数的区别:构造代码块是给所有的对象进行统一的初始换,而构造函数是给具体的对象初始化。构造代码块中定义的是不同对象共性的初始化。this:看上去是用于区分局部变量和成员变量的同名情况。this代表的是本类对象。到底代表的是哪一个呢?this代表所在函数所属对象的引用,简单说那个对象在调用this所在的函数,this就代表哪个对象。但凡本类功能内部使用了本类对象就使用this。this语句用于构造函数间调用,格式:this.(),但是this语句只能定义在构造函数的第一行:因为初始化要先执行。禁止出现类似死循环的初始化。this的两个用法:一是区别类中局部变量和成员变量而是用于构造函数之间的相互调用。静态:static作用:是一个修饰符,只能修饰类成语(成员变量和成员函数),当成员被静态修饰之后,就多了一种访问方式,除了可以被对象调用以外,还可以直接被类名调用。格式:类名.静态成员。方法区、共享区、数据区:存储静态成员。静态成员的特点:1、随着类的加载而被加载; 也就是随着类的消失而消失,说明它的生命周期比较长。2、优先于对象存在; 明确静态是先存在的,对象是后存在的。3、被所有对象共享;4、可以直接被类名所调用;5、在静态方法中是不能使用this预定义对象引用的,即使其后边所操作的也是静态成员也不行.因为this代表的是调用这个函数的对象的引用,而静态方法是属于类的,不属于对象,静态方法成功加载后,对象还不一定存在 。super也不能被使用。实例变量和类变量的区别:1、存放位置: 类变量随着类的加载而存在于方法区中。 实例变量随着对象的创建而存在于对内存中。2、生命周期: 类变量声明周期最长,随着类的消失而消失。 实例变量生命周期随着对象的消失而消失。静态使用的注意事项:1、静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态。2、因为静态优于对象,所以静态方法中不可以定义this、super关键字。3、主函数是静态的。静态的利弊:利:对对象的共享数据进行单独空间的存储,节省空间,没有必要给个对象都存储一份,同时和可以被类调用。弊:生命周期过长,而且访问出现局限。(静态虽好,只能访问静态)。什么时候使用静态:什么时候定义静态变量:当对象中出现共享数据时,该数据被静态修饰,对象中的特有属性被定义成非静态存在于对内存中;什么时候定义静态函数:当功能内部没有访问到非静态成员数据,该方法被定义成静态。主函数:主函数是一个特殊的函数,可以被jvm调用,作为程序的入口。主函数的定义: public:代表该函数的访问权限使最大的; static:代表主函数随着类的加载就已经存在; void:主函数没有具体的返回值; main:不是关键字,但是是一个特殊的单词,可以被jvm识别; (String args):函数的参数列表,字符串类型的数组。主函数的格式是固定的但是是还可以进行重载。jvm在调用主函数时,传入的是new String0每一个应用程序中都有共性的功能。可以将这些功能进行抽取,独立封装,以便复用。虽然可以使用ArrayTool的对象使用这些工具类的方法,可是对数据进行操作发现了问题:1、对象是用于封装数据的,可是ArrayTool对象并未封装特有的数据。2、操作数组的每一个方法都没有用到ArrayTool对象中的特有数据。这是考虑,让程序更严谨,是不需要对象的,可以将ArrayTool中的方法直接定义成static,直接通过类名调用即可。将方法静态化以后,可以方便使用,但是该类还是可以被其他程序建立对象的,为了更严谨,强制让该类不能建立对象,可以通过对构造函数私有化完成。java帮助文档(api)的制作:java提供专门的文档制作工具javadoc.exe。但是只要类的权限为public,并且成员的权限为public才能被此工具识别。javadoc.exe使用格式:javadoc.exe 存在文件的目录 文件名 需要写api的class文件文件中常见的内容:一、类的作用。二、常见的标识符author(作者)version(版本号)一个类中默认会有一个空参数的构造函数,这个默认的函数的构造函数的权限和类的一致,也就是如果类被public修饰,那么默认的构造函数也是public,如果类没有public修饰,那么默认的构造函数也没有public修饰。默认构造函数的权限是随着类的变化而变化的。静态代码块:静态代码块的格式:static 代码块;静态代码块的特点:随着类的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化。java中代码块执行先后顺序:1、 因为new用到class文件,所以会先找到class文件并加载到内存中2、 执行该类中的static代码块,如果有的话,给.class类进行初始化。3、在堆内存中开辟空间,分配内存地址。4、在对内存中建立对象的特有属性,并进行默认的初始化。5、对属性进行显示初始化。6、对对象进行构造代码块初始化、7、对对象进行对应的构造函数初始化。8、将内存地址付给栈内存中的变量。设计模式:解决某一类问题最行之有效的方法,java中一共有23中模式。单列模式:解决某一个类中只有一个对象。(保证只有一个对象)。单列的思路:一、(饿汉式单例)为了避免其他程序过多建立对象,先禁止其他程序建立对象。(将构造函数私有化)为了让其他程序可以访问到该对象,在本类对象中自定义一个对象。(在类中创建一个本类对象)为了便于其他程序对自定义对象的访问,可以对外提供一些访问方式。(提供一个方法可以获取到该类对象)。对于事件该怎么描述还是怎么描述,为保证对象的唯一性,只要增加以上三步就可以。二、(懒汉式单例延时加载)创建的思路和饿汉式一样的,不同点只是获取对象的方法有一个判断()。定义单例时建议使用饿汉式。继承:类的继承extends:对事物共性的提取。继承的好处:1、 提高代码的复用性。2、 让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有关系才能继承。(判断有关系才能使用继承)java只支撑单继承不支持多继承,因为多继承容易带来安全隐患(当多个父类中定义相同的功能,当功能内容不同时,不确定运行哪一个)。但是java保存了这种机制,并用另一种体现形式来完成表示多继承。java支持多层继承,也就是一个继承体系,想要使用体系,先查阅体系父类的描述,因为父类中定义的是该类体系的共性功能,通过了解共性,就可以知道该体系的基本功能。那么该体系也就基本可以使用。那么在具体的调用时,因为有可能父类不能创建对象或者是创建的子类对象具有更多的功能(包括特有的和基本的)就需要创建子类对象。简单一句话就是:查阅父类功能,创建子类对象使用功能。聚合:组合:继承出现以后,类成员(父类、子类)的特点:类成员:变量、函数、构造函数。1、变量:如果子类中出现非私有化的同名变量时,子类要访问本类中的变量使用this关键字,子类要访问父类中的同名变量使用super关键字。super的使用和this的使用几乎是一致的。this代表的是本类对象的引用,super代表的是父类的引用。2、函数:当子类出现和父类一模一样的函数时,当子类对象调用该函数,会运行子类函数的内容。如同父类函数被覆盖一样。这种情况就是函数的重写(覆盖)。当子类继承了父类,延袭了父类的功能,这时子类具有该功能,但是功能的内容和父类不一致,没必要定义新功能,而是使用覆盖特点,保留父类功能的定义,并重写功能内容。注意:1、子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。2、静态只能修饰静态。函数的重载看的是参数列表,函数的覆盖需要函数是一模一样(函数名和形参列表)。3、构造函数:在对子类对象进行初始化的时候,父类的构造函数也运行,这是因为子类构造函数默认在第一行隐式的语句super();super()会访问父类中空参数的构造函数,而且子类中所有的构造函数默认的第一行都是super()。为什么子类一定要访问父类中的构造函数呢?因为父类中的数据子类可以直接获取。所以子类对象在建立时,需要先查看父类如何对这些数据进行初始化的。所以子类对象初始化的时候需要访问一下父类中的构造函数。如果需要访问父类中指定的构造函数,可以通过手动定义super语句(super(参数);)的方式来指定。super语句一定定义在子类构造函数的第一行。子类的所有构造函数都会默认访问父类中的空参数的构造函数,如果父类中没有空参数的构造函数时,子类必须手动通过super或者this语句形式来指定要访问的构造函数。子类中至少会有一个构造函数会访问父类中的构造函数。Final:final关键字:最终,最为一个修饰符,可以修饰类、变量、函数。1、被final修饰的类不可以被继承,为了避免被继承,被子类复写该功能。2、被final修饰的方法不可以被复写。3、被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量又可以修饰局部变量。当在叙述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性都给这些值起名字方便阅读,而这个值不需要改变就用final关键字修饰。做为常量,常量的命名规则:单词的所有字母都大写,如果是多个单词中间通过_连接。4、内部类定义在类中的局部位置上,只能访问该局部被final修饰的局部变量。抽象类:abstract(抽象)。当多个类中出现相同功能,但是功能主体不同,这时就可以向上抽取,只抽取功能定义,而不抽取功能主体。抽象类的特点:1、抽象方法一定在抽象类中。2、抽象类和抽象方法都必须被abstract关键字修饰。3、抽象类不可以用new创建对象,因为调用抽象方法没有意义。4、抽象类中的方法要被使用,必须由子类复写所有的抽象方法后,建立子类对象调用,如果子类只覆盖部分抽象方法,那么该子类还是一个抽象类。抽象类和一般类没有什么的不同,该如何描述事物就怎么描述事物,只不过,该事物出现了一些看不懂的东西。这些不确定的部分,也是该事物的功能,需要明确出现,但是无法定义主体,就可以通过抽象方法表示。抽象类比一般类多个抽象函数,就是再类中可以定义抽象方法。特殊之处:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象。接口:interface;接口可以认为是一个特殊的抽象类。当抽象类中的方法都是抽象的时候,那么该类可以通过接口的形式来表示。class用于定义类,interface用于定义接口。接口定义时,格式特点:1、接口常见定义的内容:常量、抽象方法。2、接口中的成员都有固定的修饰符:变量:public static final方法:public abstract。接口是不可以创建对象的,因为抽象方法。需要子类实现,子类对接口中的抽象方法全部覆盖后,子类可以才可以实例化。接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现。接口的特点:1、接口是对外暴露的规则。2、接口是程序的功能扩展。3、接口可以用来多实现。4、类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口。5、接口和接口之间可以有继承关系。多态:多态:可以理解为事物存在的多种体现形态。(通过一个类指挥多个对象)1、多态的体现:父类的引用指向了自己的子类对象,父类的引用也可以接受自己的子类对象。2、多态的前提:必须是类与类之间有关系。要么继承,要么实现。通常还有一个前提存在覆盖。3、多态的好处:多态的出现大大提高了程序的扩展性。4、多态的弊端:提高了扩展性,但是只是使用父类的引用访问父类中的成员。5、多态的应用:多态中的类型转换:我们转换的是父类应用指向了自己的子类对象时,该应用可以被提升,也可以被强制转换(强制类型转换)。多态自始至终都是子类对象在变化。在多态中成员函数的特点:1、在编译时期,参阅引用型变量所属的类中是否有调用方法。如果有,编译通过,如果没有,编译不通过。2、在运行时期:参阅对象所属的类中是否有调用的方法。简单总结就是,成员函数在多态调用时,编译看左边,运行看右边。在多态中,成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)。在多态中,静态成员函数的特点:无论编译和运行,都参考左边(引用型变量所属的类)。Object类:类Object是类层次的根类,每个类都使用Object作为超类,是所有对象的直接或者间接父类,传说中的上帝。该类中定义的是所有对象都具有的功能。Object中常见的方法介绍:equals();对象的比较方法,比较的是地址值。自定义类中也有比较的功能,没有必要重新定义,只要沿袭父类中的功能,建立自己特有比较内容即可,也就是覆盖。toString();返回对象的字符串表示(对象类型hash值)。hashCode();返回想的哈希码值。getClass();返回此 Object 的运行时类。getMethods();java内部类内部类:将一个类定义在另一个类的里面(可以定义在外部类的任何位置上),对里面那个类就称为内部类(内置类、嵌套类)。访问特点:1、内部类可以直接访问外部类中的成员,包括私有成员(是因为内部中持有一个外部类中的引用,格式:外部类.this)。2、外部类要访问内部类中的成员必须建立内部类对象。 直接访问内部类中变量的方式:外部类.内部类.方法。访问方式:1、当内部类定义在外部类的成员位置上,而且非私有,可以外部其他类中直接建立内部类对象。格式:外部类名.内部类名 变量名=new外部类对象().new内部类对象();例如:Outer.Inner in=new Outer().new Inner();2、当内部类定义在成员的位置上,就可以被成员修饰符修饰。比如:private:将内部类在外部类中进行封装;static:内部类就具有static的特性,当内部类被static修饰以后,只能直接访问外部类中的static成员,出现了访问局限。在外部内中怎么访问内部静态类中非静态方法呢?new Outer.Inner.function();在外部内中怎么访问内部静态类中静态方法呢?Outer.Inner.function();注意:当内部类中定义了静态成员变量,该内部类必须是static的。 当外部类的静态方法访问内部类时,内部类也必须是静态的。内部类被定义在局部时:1、不可以被成员修饰符修饰。2、但是可以直接访问外部类中的成员,因为还持有外部类中的引用(外部类.this),但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量。内部的使用条件:当描述事物时事物的内部还有事物,该事物就要用内部类来描述。因为内部事物在使用外部事件的内容。匿名内部类:1、匿名内部类实际上就是内部类的简写格式。2、定义匿名内部类的前提:内部类必须继承一个类或者是接口。3、匿名内部类的创建方法:直接new 父类或者接口()复写抽象方法。4、其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖,也可以理解为带内容的对象。5、匿名内部类中的方法最好不要超过3个。java异常:异常:程序在运行时出现不正常情况。异常的由来:问题也是现实生活中的一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象,其实就是卷对不正常情况进行描述后的对象体现。对于问题分为两种:严重:java通过Error类进行描述,对于Error一般不编写针对性的代码进行处理。不严重java通过Exception类进行描述,对于Exception会编写针对性的代码进行处理。无论Error或者是Exception都具有一些共性内容。比如:不正常的情况,引发原因将这些内容向上抽取就是Throwable类。异常的处理:java提供了特有的语句进行处理Exception格式:try需要检测的代码块catch (异常类 变量)处理异常的代码finally 一定会执行的语句对捕获到的异常对象进行常见的方法操作:getMessage();返回异常信息。toString();返回异常名称、异常信息。printStackTrace();没有返回值,直接打印异常名称、异常信息、异常出现的位置。其实jvm默认的异常处理机制就是调用printStackTrace方法。打印堆栈中的跟踪信息。在功能上通过throws关键字声明了该功能有可能出现问题,在函数中声明异常,便于提高安全性,让调用处处理,不处理编译失
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网站优化建设作业指导书
- 工程经济考试的成功备考策略试题及答案
- 2025年福建三明事业单位卫生岗招聘考试笔试试题含答案
- 2025年经济法概论学习方案试题及答案
- 市政工程公共管理试题及答案2025
- 2025年工厂安全培训考试试题【能力提升】
- 2024-2025企业员工岗前安全培训考试试题附答案【完整版】
- 2025日常安全培训考试试题及参考答案(综合题)
- 2025企业级安全培训考试试题(标准卷)
- 前沿交叉的2025年工程经济试题及答案
- 房屋建筑工程竣工验收技术资料统一用表(2024 版)
- 康复医学科治疗技术操作规范2023版
- 磷酸铁及磷酸铁锂异物防控管理
- 2025年河长制知识竞赛题库及答案(共100题)
- 精神科幻觉护理常规
- 渑池项目部砂石骨料生产线安全操作规程(修订)
- 传统文化在企业文化中的应用-深度研究
- 企业重组及股权结构调整方案
- 新视野大学英语(第四版)读写教程4(思政智慧版)课件 B4U2 Secrets to beauty Section B
- 运输调度管理制度
- 2025商场疫情防控应急演练方案范文
评论
0/150
提交评论