相关it视频自修阁每日小结_第1页
相关it视频自修阁每日小结_第2页
相关it视频自修阁每日小结_第3页
相关it视频自修阁每日小结_第4页
相关it视频自修阁每日小结_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Day01第一个 Java 程序Public sicvoid main(arr args)System.out.pr(“oworld”);3.独立编写o world 程序,编译并运行。class Demopublic sic void main(Stringargs)System.out.prln(“o world”);1. 简述对 JVM,JRE,JDK 的理解。JVM 虚拟机相当于计算机系统(操作系统+硬件环境)jre = java 虚拟机 +类库(辅助 java 虚拟机运行的文件)jdk = jre + java 开发工具2. 简述环境变量 path 和 classpath 的作用?搭建

2、环境变量path 可以在任意目录下运行对应目录的所有软件作业4. java 语言是否区分大小写? class 的作用,javac,java 的作用?分、class 存放代码 javac 编译代码 Java 执行代码5. 简述 main 方法(是什么,什么特点,怎么用,何时用?)Main 主方法,一个类有且仅有一个主方法,一个类必须要用一个主方法,程序的笔记计算机 = 硬件 软件硬件:cpu : cpu 是计算机中的运算算的执行。与控制。负责了计算机的指令、与计算机运内存: 数据与 cpu 交互的桥梁。 程序所需要的数据都会先加载到内存中,cpu 是直接内存中数据运算的。特点: 存取速度快。 缺

3、点:断电或者是程序退出的时候,内存中的数据都会丢失。硬盘(机械硬盘、固态硬盘):可以性保存数据, 缺点: 存取的速度慢。固态硬盘:速度非常快。软件:软件就是按照一定顺序组织起来的计算机指令与数据的集合。 软件 = 数据 +指令软件的类别:系统软件:比如: windows 、 linux 、 mac os 、 ios 、 android(改 UI)应用软件: 应用软件必须要在系统软件的基础上才能使用的。比如:、 迅雷、 飞信.。软件的本质(软件为解决了什么问题): 提高了人类与计算机的交互效率。人类与计算机的交互方式:1. 图形化界面的交互方式: 简单 、 功能强大。2.通过 dos 命令的交互

4、方式: 特点: 需要大量的 dos 命令, 功能比较弱小。首先具备一个控制台(命令行提示符窗口)用于输入 dos 命令:打开一个控制台的方式:方式一:开始- 所有程序-附件命令提示符方式二:开始-运行输入 cmd 即可.常见的 dos 命令:盘符:进入指定的盘下面。操作文件夹:dir列出当前控制台所在的路径下的所有文件以及文件夹。进入指定的路径下。回退到上一级目录上。回退到当前路径下的根目录。cd cd cd mdrd路径.文件夹的名字文件夹的名字创建一个文件夹删除一个空文件夹。注意:不能用于删除非空到的文件夹。操作文件:echo 数据文件名type 文件名del 文件名创建一个文件并且指定写

5、入的数据。查看指定的文件内容。删除指定的文件。 注意: del 后面如果跟一个文件夹,那么是删除一个文件夹中的所有文件。*tab通配符(可以匹配任意的文件名)内容补全.cls清屏上下方向键找回上一次所写过令。exit关闭控制台。计算机语言(更好的与计算机进行交互):计算机的发展历史:机器语言:010101010101010汇编语言 通过大量的英文单词代表计算机的指令。 add 1 1高级计算机语言: C JAVA C+ 1993 , JAVA 初衷: 机互联网的计算机语言。1994年互联网刚刚兴起,.(高司令林),改造成了面向java 重要特性之 -跨(一次编译,到处运行).: 操作系统。ja

6、va 的环境的搭建:jre: java 运行环境。 jre= java 虚拟机 +类库(辅助 java 虚拟机运行的文件)jdk: java 开发工具集jdk = jre + java 开发工具。安装 jdk 的路径要注意: 不能带有中文路径或者是空格。jdk 目录的介绍:bin: 存放的是 java 的开发工具。db : JDK7 附带的一个轻量级的数据库,名字叫做 Derby。 include :存放的调用系统资源的接口文件。jre : java 运行环境lib :类库。src.zip : java 源代码java.exe 启动 java 虚拟机解释并执行指定的 class 文件。java

7、 工具的使用格式:java 指定的 class 文件javac.exe 启动 java 编译器对指定的 java 源文件进行编译、。编写第一个 java 的程序:第一步: 新建一个 txt 文件。把后缀名改成 java。第二步: java 代码全部都是写到类上面的。如何编写一个类:使用一个关键字 class 即可定义个类。格式:class 类名 备注: 大括号表示是一个类的范围,在类的范围之内都可以写代码,第三 步: 编写一个主方法。 主方法的写法是固定的,是一个程序的方法开始执行,代码从主如何启动 java 编译对 java 的源文件进行编译?javac 的使用格式:javac java 源

8、文件。编译的过程中烦!就的问题:每次编译 的时候都需要写上 java 源文件的完整路径。解决方案: 如果可以在任意的路径下都可以找到 java 的开发工具,那么该问题就解决了。在控制台写一个可执行文件的文件名的执行原理:在控制台写一个可执行文件的文件名,那么系统首先会在控制台当前路径下去搜索是否存在该文件,如果可以找到指定的文件,那么就执行该文件,如果找不到该文件,那么系统还会根据 path 的环境变量所保存的路径信息下去搜索是否有指定的文件,如果能找到,那么就执行该文件。配置 path 环境变量:如何找到 path 的环境变量:电脑属性高级系统设置高级环境变量path把 javac 所在的路

9、径拷贝到 path 环境变量中即可。Day02标识符: 在 java 程序中有些名字是可以自定义的,那么这些自定义的名字称作为自定义的标识符。就标识符要注意的细节:标识符的组成元素是由 字母(a-zA-Z) 、数字(0-9) 、 下划线(_)、($).标识符不能以数字开头。标识符是严格区分大小写的。标识符的长度是没有长度限制的。符号5. 标识符名一般要有意义(要做到让人见名知意)6. 关键字、保留字不能用于自定义的标识符。自定义标识符的规范:1. 类名和接口词的首字母大写,其他单词小写。 比如: RunTime.变量名与方法名首单词全部小写,其他单词首字母大写,其他小写。 比如:doCook(

10、);包名全部单词小写。常量全部单词大写,单词与单词之间使用下划线分隔。 比如: UP_DIRECTION判断一下那些是 符合的标识符: 12abc_不合法 数字不能开头_12abc合法$ab12#不合法abc123不合法#号不属于标识符组成元素。 号不属于标识符组成元素。关键字:关键字就是在 java 程序中具备特殊含义的标识符。关键字一般用于描述一个程序的结构或者表示数据类型。*/*需求:编写一个 java 程序模拟登陆.注释: 注释就是使用文字对程序的说明,注释是写给程序员看的,编译器会忽略注释的容的。内注释的类别:第一种:单行注释。/ 注释的内容第二种:多行注释。/* 注释的内容 */*

11、第三种:文档注释./* 注释的内容 */*文档注释也是一个多行注释。注释要注意的细节:1. 单行注释可以嵌套使用,多行注意是不能嵌套使用的。注释的作用:1.2.使用文字对程序说明。调试程序。*/*软件 =数据+ 指令+ 文档常量: 常量就是程序在运行过程中其值不能发生改变的量。常量的类别:整数常量小数常量常量字符常量10 123.14常量只有两个值: true(正确). false(错误)字符常量就是单个字符使用单引号引起来的内容称作为字符常量。字符串产量 字符串常量就是使引号引起来的内容称作为字字符串常量。整数常量的表现形式:整数的表现形式主要是以不同的进制(二进制、八进制、表现出来。进制)

12、进制: 十进制(09) 、(七进制 06)、 小时(12 进制(0-11)、 24 进制(023)进制:用有限的数字符号代表所有的数值。计算机的出现是为了服务于人类的,那么人类在现实生活中使用的数据基本上都是十进制的数据,那么计算机是否有可以现实生活中的数据呢?如果可以又以哪种形式呢?二进制由来。电脑现实生活中的数据都是使用二进制进行的,那么就要懂得如何把十进制数据转换成二进制。十进制与二进制之间的转换:十进制转二进制的方法:使用十进制的数据不断除以 2,直到商为 0 为止。从下往上取余数就是对应的二进制。10(十进制)1010(二进制)二进制转十进制:使用二进制的每一位乘以 2 的 n 次方

13、,n 从 0 开始,每次递增 1,然后把各部分的数据相加即可。1110(二进制) - 14(十进制)二进制的弊端: 二进制的书写太长了,不方便人类。二进制的数据特点: 由 01 组成。解决方案:每三个二进制位就就一个数字。1000(十进制)- 001,111,101,000(二进制) = 1,7,5,0一个八进制的数据就是相当于三个二进制位。十进制与八进制之间的转换:十进制转八进制:使用十进制的数据不断除以 8,直到商为 0 为止。从下往上取余数就是对应的八进制。45(十进制)- 55 (八进制)八进制转十进制:使用八进制的每一位乘以 8 的n 次方,n 从 0 开始,每次递增 1,然后把各部

14、分的数据相加即可。23(八进制)(十进制)八进制数据的特点: 只有 07 这八个字符组成的。进制的数据: 09 , a(10)b (11),c(12),d(13), e(14),f(15), 四个二进制位进制的数据.就是一个进制的数据是有 09、a-f 这几个字符组成的。十进制转换成进制:使用十进制的数据不断除以 16,直到商为 0 为止。从下往上取余数就是对应的进制。38(十进制)26(进制)进制转十进制:使用递增 1,然后把各部分的数据相加即可。进制的每一位乘以 16 的 n 次方,n 从 0 开始,每次34(进制)52(十进制)*/二进制 , 如果一个数据要表示二进制,那么要在该数据的前

15、面加上 0b 开头/八进制数据, 八进制的数据需要以 0 开头/进制数据,进制的数据需要以 0 x 开头如果一个数据没有加上任何的标识之前,默认就是十进制的数据。/*变量的方式:变量的方式一:数据类型 变量名;变量的方式二:了多个相同类型变量数据类型 变量名 1 , 变量 2.注意:1.2.变量是必须先再使用。在一个作用域中不能同名 的变量。*/*软件 =数据 + 指令 + 文档(使用者文档+ 开发者文档)文档注释与多行注释的区别:多行注释与文档注释的区别: 多行注释的内容不能用于生成一个开发者文档,而文档注释 的内容可以生产一个开发者文档。使用 javadoc 开发工具即可生成一个开发者文档

16、。javadoc 工具的使用格式:javadoc -d 存放文档的路径java 的源文件使用 javadoc 工具要注意细节:如果一个类需要使用 javadoc 工具生成一个软件的开发者文档,那么该类必须使用public 修饰。文档注释注释的内容一般都是位于类或者方法的上面的。写注释的规范:一般单行注释是位于代码的右侧,多行注释与文档注释一般是写在类或者方法的上面的。*/*在现实生活中有很多数据是经常会发生变化 的。比如: 天气 、 心情 、 时间、.变量: 变量就是在程序运行过程中其值可以发生变化的量.变量就是一个数据的容器。容器具备什么特点:1. 容量(大小)。2.一定格式的数据。3. 名

17、字.(定义)一个变量的格式:容量 变量名字 = 数据。变量名名规范: 首单词小写,其他单词首字母大写,其他小写。java 表示一个变量的容量多大是使用了数据类型描述的。在 java 中 的数据类型主要有两种数据类型基本数据类型数据类型java 中的八种基本数据类型:整数的数据类型:byte(字节) short(短整型)(整型)long(长整型)8 位(bit) 16bit 32bit64bit28 = 256-128127216 = 65536264 =注意: 如果一个整数没有加上任何的标识的时候,那么默认是类型的数据。如果需要把该数据表示成一个 long 类型的数据,那么需要加数据后面加上

18、L 表示,L是不区分大小写的,但是建议使用大写。疑惑:整数可以使用四种数据类型,那么具体怎么选择使用呢?选用数据类型的原则: 在能满足需求的情况下,能小就小。节省内存空间。小数的数据类型:float(单精度浮点型)32bitdouble(双精度浮点型)64bit注意:如果一个小数没有加上任何标识的时候,那么该小数默认是 double 类型的数据,如果需要表示成 float 类型,那么需要在小数的后面加上f 表示。f 不区分大小写的。类型:类型只有两个 值,true 或者 false。1 字节或者 4 个字节如果使用如果使用 一个字节。一个基本类型的变量时,那么该变量占 4 个字节,一个数组类型

19、 的时候,那么每个数组的元素占字符类型:char 2 字节(16bit)八种基本数据类型: 整数:byte short小数: float double:字符: charlong字符串的数据类型是:String数据类型,不属于基本数据类型。*/Day03/*控制流程语句之(if)判断语句if 判断语句的格式:格式 1:适用于一种情况使用。if(判断的条件)符合条件执行的代码;格式 2 : 适用于两种情况下去使用的。if(判断条件)符合条件执行的代码else不符合条件执行的代码;三元运算符的格式:表达式?值 1:值 2;if-else 与三元运算符非常像:三元运算符的优点: 结构比较简洁。三元运算

20、符的缺点: 符合条件必须要返回一个结果,不能执行语句。格式三: 适用于多种情况下去使用的。if(判断条件 1)符合条件 1 执行的代码else if(判断条件 2)符合条件 2 执行的代码else if(判断条件 3)符合条件 3 执行的代码.else都不符合上述 的条件执行的代码if 语句要注意的细节:如果符合条件后只有一个语句需要执行,那么可以省略大括号。但是建议不要省略,因为结构不清晰。if 语句的判断条件后不能添加分号,否则会影响到执行的效果的,需求 1:工作经验要两年或者两年以上。需求 2:根据一个变量所的数字输出对应的。 0 -天 1一*/*需求: 键盘录入一个分数,根据分数输出对

21、应的等级。比如: 100-90 A 等级89-80 B 等级E 等级接受键盘录入数据的步骤:1.2.3.创建一个扫描器对象。调用扫描器对象的 next导入包。方法扫描数据。*/Importjava.util.*;/导入包Scanner scanner=new Scanner(System.in);score=scanner.nect();/定义一个变量接收扫描到的内容/*java 中的八种基本数据类型:整数:byte 、 short 、 long小数:float double字符:char:字符串的类型: String(数据类型)变量的方式:方式 1: 数据类型 变量名 = 数据;方式 2:数

22、据类型 变量名 1 , 变量名 2.;*/*数据类型转换:小数据类型大数据类型自动类型转换大数据类型小数据类型强制类型转换强制类型转换的格式:小数据类型 变量名 = (小数据类型)大数据类型数据类型转换要注意的细节:凡是 byte、short 、 char 数据类型数据在运算的时候都会自动转换成数据再运算。两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。类型的*/*算术运算符:+ (正数、加法、连接符)连接符的作用: 让任何的数据都可以与字符串进行拼接。如果+号用于字符串的时候,那么+号就是接符,并不是 做加能了。连接符要注意:任何类型的数据与字符串使用连接符连接,那么结果都是字符

23、串类型的数据。-*/ (除法)%(取模、取余数)*/*+ (自增) : 自增就是相当于操作数+1.前自增:+位于操作数的前面。 比如: +a;前自增:先自增,后使用。后自增: 先使用,后自增。*/*a = 0;/sum = +a; /前自增。 a = a+1 sum = a+; /后自增 sum = 0 , a, sum = a= a+1= + a); /1System.out.prln(sum= + sum+ a后自增在 jvm 的运行原理:因为后自增要使用 到没有+1 之前 的值,那么 jvm 会先之前的值。一个变量用于保存没有+1i = 0;i = temp;原理:1.2.3.temp

24、= i; /自增。 i = i+1;了一个临时变量用于i = 1;了 i 没有加 1 之前的值。temp 把用作了表达式 的结果。i 的值发生了几次变化:i = 0 - 1- 0*/*自减: 操作数-1.前自减: -位于操作数的前面。-操作数前自减: 先自减,后使用。后自减:-位于操作数的后面。操作数-;后自减: 先使用,后自减。*/*赋值运算符:= (赋值运算符)+=-=*=/=%=*/*逻辑运算符 :逻辑运算符的作用是用于连接表达式的。& (与,并且)规律: 只有左右变量同时 为 true,那么结果才是 true,否则就为 false。| (或,或者)规律: 只要两边的表达式有一边为 tr

25、ue,那么结果就为 true,只有两边同时为 false的时候,结果才是 false. (异或)规律: 只要两边的表达式 结果不一致,那么结果就为 true,如果左右两边 的表达式一致,那么就为 false.! (非)& (短路与双与)短路与和单与符号的相同与不同点:相同点: 短路与和单与运算 的结果是一样的。不同点: 使用短路与的时候,如果左边的表达式,从而提高了效率。使用单与的时候,即使发现左边的表达式的。表达式为 false,则不会在运算右边的表达式为 false,还是会运算右边的只有左边的表达式为 false 时,双与的效率才要高于单与的.| (短路或双或)短路或与单或的相同点与不同点

26、:相同点:运算的结果是一致 的。不同点:使用短路或的时候,当发现左边的表达式。表达式为 true 时,则不会运算右边的使用单或的时候 发现左边的表达式为 true,还是会运算右边表达式。需求:要求两年或两年以上的工作经验,大于 18 岁。*/*位运算符:位运算符就是直接操作二进制位的。&|(与)(或)(异或)规律: 如果操作数 A 连续异或同一个操作数两次,那么结果还是操作数A。应用: 对数据加密. (取反)*/*比较运算符: 比较运算符的结果都是返回一个值的。= (判断是否等于)=用于比较两个基本数据类型数据的时候,比较的是两个变量所的值是否一致.=用于比较两个类型变量的数据时候,比较的是两

27、个地址是否一致.类型变量所的内存!= (不等于) (大于)= (大于等于)= (小于等于)*/*移位运算符:()规律:一个操作数进行移 的位数.运算的时候,结果就是等于操作数乘以 2 的 n 次方,n 就是左31323(右移)规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以 2 的 n 次方,n 就是右移的位数。31 = 3 / 2(1)32 = 3 / 2(2)= 1= 0 。(无符号右移):无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空使用 0 补,如果操作数是一个负数,那么左边的空正数还是负数都使用 0 补。使用 1 补。而使用无符号右移的时

28、候,不管是笔试题目:使用最高的效率算出 2 乘以 8 的结果。2形式参数。 分数需求 2: 定义一个函数打印一个乘法表,不需要返回任何数据。返回值类型。 void未知的参数-形式参数。 到底是什么乘法表函数的特点:函数的作用就是把一个功能代码给封装起来,已达到提高功能代码的复用性。函数定义好之后是需要被调用才会执行的。如果一个函数没有返回值返回给调用者,那么返回值类型必须是使用 void 表示。*/ /*函数的定义格式:修饰符 返回值类型 函数名(形式参数.)需要被封装的功能代码;return 结果;如何定义一个函数:返回值类型。是否存在未知的参数(是否存在要由调用者确定的参数)。形式参数*/

29、*控制流程语句之-if 判断语句格式一: 只适用于一种情况下去使用。if(判断条件)符合条件执行的代码;格式二:适用于两种情况下去使用if(判断条件)符合条件执行的代码else不符合条件执行 的 代码格式 3: 适用于多种情况使用的if(判断条件 1)符合条件 1 执行的 语句;else if(判断条件 2)符合条件 2 执行else if(判断条件 3)符合条件 3 执行else if(判断条件 4)符合条件 4 执行else的语句;的语句;的语句;都不符合上述 条件执行的代码.*/*控制流程语句之switch 选择判断语句switch 语句的格式:switch(你的选择)case 值 1:

30、符合值 1 执行的代码break; case 值 2:符合值break; case 值 3:符合值break; case 值 4:符合值break;.2 执行的代码3 执行的代码4 执行的代码default:你的选择都符合上述的选项时执行的代码; break;switch 语句要注意的事项:switch 语句使用的变量只能是 byte、 char、 short、 、 String 数据类型,String 数据类型是从jdk7.0 的时候开始支持的。case 后面跟 的数据必须是一个常量。switch 的停止条件:switch 语句一旦匹配上了其中的一个 case 语句,那么就会执行对应的 ca

31、se 中的语句代码,执行完毕之后如果没有遇到 break 关键字或者是结束 switch 语句的大括号,那么 switch 语句不会再判断,按照代码的顺序从上往下执行所有的代码。直到遇到 break 或者是结束 siwitch 语句的大括号为止。4. 在 switch 语句中不管代码的顺序如何,永远都是会先判断 case 语句,然后没有符合的情况下才会执行 default 语句。if-else if-else if 语句与 switch 语句非常的相似:switch 语句的优点:switch 语句的结构清晰。switch 缺点:如果 判断的条件是一个区间范围的,使用 switch 操作就非常的

32、麻烦了。判断以下那些不是计算机语言( D)A javaB C#C javascriptD android*/*循环语句while 循环语句while 循环 语句的格式:while(循环的条件)循环语句;while 循环语句要注意的事项:while 循环语句一般是通过一个变量控制其循环的次数。while 循环语句的循环体代码如果只有一个语句的时候,那么可以省略大括号。但是也是不建议大家省略。3. while 循环语句的判断条件后面不能跟有分号,否则会影响到执行的效果。需求: 在控制上打印五句o world.*/创建随机数对象 Import java.util.*;Class Gamespubli

33、c sic void main(String args)Random random=new Random();randomNum=random.next(输入随机数长度);/定义一个变量来接收随机数 Scanner scanner=new Scanner(System.in);While(true)gueum=scanner.next();/定义一个变量来接收猜测的数If(gueumrandomNum)System.out.prln(“猜大了”);else if(gueum对象面象的计算机语言: 找适合的对象做适合的事情。如何找适合的对象:1. sun 已经定义好了很多的类,象使用。只需要认识

34、这些类,就可以通过这些类创建对2. 自定义类,通过自定义类来创建对象使用。自定义类创建对象的三步骤:1. 自定义类。格式:class 类名事物的公共属性使用成员变量描述。事物的公共行为使用函数描述。2. 通过自定义类创建对象。格式:类名 变量名 =new 类名();(设置)对象的属性或者调用对象的功能。对象属性的格式:对象.属性名.设置对象的属性:对象.属性名 = 数据。调用对象的功能对象.函数名();3.*/*面象三大特征:封装继承3多态。需求: 使用 java 类描述百合网的会员。问题:有问题?根本原因: 由于其他人可以直接操作 sex 属性。可以对 sex 属性进行了直接的赋值。封装:权

35、限修饰符:权限修饰符就是控制变量可见范围的。public :公共的。 public 修饰的成员变量或者方法任何人都可以直接。private : 私有的, private 修饰的成员变量或者方法只能在本类中进行直接。封装的步骤:使用 private 修饰需要被封装的属性。提供一个公共的方法设置或者获取该私有的成员属性。命名规范:set 属性名();get 属性名();疑问: 封装一定要提供 get 或者 set 方法吗?不一定, 根据需求而定的。规范 : 在现实开发中一般实体类的所有成员属性(成员变量)都要封装起来。实体类:实体类就是用于描述一类 事物的就称作为实体类。工具类(Arrays 数组

36、的工具类):封装的好处:提高数据的安全性。操作简单。隐藏了实现。*/*成员变量与局部变量的区别:定义的位置上区别:成员变量是定义在方法之外,类之内的。局部变量是定义在方法之内。作用上的区别:成员变量的作用是用于描述一类事物的公共局部变量的作用就是提供一个变量给方法属性的。而已。生命周期区别:1. 随着对象 的创建而存在,随着对象的而。2. 局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量一旦出了自己的作用域那么马上从内存中。初始值的区别:1. 成员变量是有默认的初始值。数据类型默认的初始值00.0f0.0false 数据类型) nullfloatdoublecharStri

37、ng(2. 局部变量是没有默认的初始值的,必须要先初始化才能使用。*/*对象:没有类型变量指向的对象称作为对象。需求: 使用 java 类描述一个学生类。对象要注意的事项:一般不会给对象赋予属性值,因为永远无法获取到。1.2. 两个对象永远都不可能是同一个对象。对象好处:简化书写。对象的应用场景:1. 如果一个对象需要调用一个方法一次的时候,而调用完这个方法之后,该对象就不再使用了,这时候可以使用对象。2. 可以作为实参调用一个函数。*/Day07/*对象:真实存在的唯一的事物。类: 同一种类型的事物公共属性与公共行为的抽取。java 面象语言: 找适合的对象做适合的事情.找对象的方式:方式一

38、: sun 已经定义好了很多了类,只需要认识这些类即可创建对象使用。方式二:需要自定义类,通过自定义类创建对象。在整理笔记的过程中对自己有疑问的概念使用代码验证或者它。自定义类三步骤:1. 自定义一个类。class 类事物 的公共属性使用成员 变量描述事物的公共行为使用函数描述。2. 可以通过类创建对象。(设置)对象的属性或者调用对象的方法。3.成员变量与局部变量 的区别:自定义的位置区别:成员变量是定义在方法之外,类之内的变量。2. 局部变量是2. 作用上的区别:在方法之内的变量。成员变量的作用描述一类事物的属性。局部变量的作用是提供一个变量给方法生命周期的区别;成员变量随着对象的创建而存在

39、,随着对象的的。而。2. 局部变量是调用到了对应的方法执行 到了创建该变量的语句时存在,一旦出了自己的作用域马上从内存中。初始值的区别:成员变量是有默认的初始值的。局部变量是没有默认的初始值的,必须要先初始化才能使用。对象: 没有类型变量指向的对象就称作为对象。对象要注意的细节:1. 一般不会给对象的属性赋值,因为永远都没法获取到。2. 两个对象永远都不可能是同一个对象。对象好处:简化书写。对象的应用场景:如果调用一个对象的方法一次时,然后这个对象就不再使用,那么这时候可以使用对象。可以作为实参调用一个函数。封装:封装的步骤:使用 private 修饰需要被封装的属性.根据需要提供 get 或

40、者 set 方法设置以及获取属性。封装的好处:提高了数据的安全性。操作简单。隐藏了实现。注意:一般实体类的属性都会封装起来。*/*需求: 使用java 类描述一个动物。问题:存在同名的成员变量与局部变量时,在方法的内部的是局部变量(java 采取的是就近原则的机制的。)。this 关键字:this 关键字代表了所属函数的调用者对象。this 关键字作用:1. 如果存在同名成员变量与局部变量时,在方法内部默认是局部变量的数据,可以通过 this 关键字指定成员变量的数据。2. 在一个构造函数中可以调用另外一个构造函数初始化对象。this 关键字调用其他的构造函数要注意的事项:1. this 关键

41、字调用其他的构造函数时,this 关键字必须要位于构造函数中 的第一个语句。2. this 关键字在构造函数中不能出现相用 的情况,因为是一个死循环。this 关键字要注意事项:1. 存在同名的成员变量与局部变量时,在方法的内部的是局部变量(java 采取的是“就近原则”的机制的。)2. 如果在一个方法中了一个变量,该变量只存在成员变量的情况下,那么 java 编译器会在该变量的 前面添加this 关键字。*/*java 是 面象的语言: 万物皆对象: 任何事物都可以使用类进行描述。需求: 使用java 类描述 一个婴儿.在现实生活中有两种婴儿, 一种婴儿一出生就具备了名字(白户),还有一种婴

42、儿就是之后才有名字 的(黑户)。出生构造函数:构造函数的作用: 给对应的对象进行初始化。构造函数的定义的格式:修饰符 函数名(形式参数)函数体.构造函数要注意的细节:构造函数 是没有返回值类型的。构造函数的函数名必须要与类名一致。3. 构造函数并不是由对应的构造函数。手动调用的,而是在创建对应的对象时,jvm 就会主动调用到如果一个类没有显式的写上一个构造方法时,那么 java 编译器会为该类添加一个无参的构造函数的。如果一个类已经显式的写上一个构造方法时,那么 java 编译器则 不会再为该类添加一个无参 的构造方法。构造函数是 可以在一个类中以函数重载 的形式存在多个 的。疑问:创建对象时

43、,jvm 就会调用到对应的构造方法,那么以前没有学构造方法,那么以前创建对象时,jvm 是否 也会调用构造方法呢?如果有?构造方法从何而来呢?会调用, java 编译器在编译的 时候给加上去的。jdk 提供了一个java 开发工具(javxe)给进行反编译的。javap 反编译工具的使用格式:javap -c -l -private 类名疑问: java 编译器添加 的无参构造方法的权限修饰符是 什么?与类的权限修饰是一致的。构造函数与普通 函数的区别:返回值类型的区别:构造函数是没有返回值类型 的,普通函数是有返回值类型的,即使函数没有返回值,返回值类型也要写上 void。函数名的区别:构造

44、函数的函数名必须要与类名一致,普通函数的函数名只要符合标识符调用方式的区别:名规则即可。1. 构造函数是 在创建对象的时候由 jvm 调用的。2. 普通函数是由4. 作用上的区别:使用对象调用的,一个对象可以对象多次普通 的函数,构造函数 的作用用于初始化一个对象。普通函数是用于描述一类事物的公共行为的。*/*sic(静态修饰符)1. sic 修饰成员变量 :如果有数据需要被共享给所有对象使用时,那么就可以使用sic 修饰。静态成员变量的方式:方式 1: 可以使用对象进行格式: 对象.变量名。方式二: 可以使用类名进行格式: 类名.变量名;。注意:1. 非静态的成员变量只能使用对象进行,不能使

45、用类名进行。2. 千万不要为了方便数据而使用 sic 修饰成员变量,只有成员变量的数据是真正需要被共享的时候才使用 sic 修饰。sic 修饰成员变量的应用场景: 如果一个数据需要被所有对象共享使用的时候,这时候即可好实用sic 修饰。2. sic 修饰成员函数:*/*sic(静态)需求:描述一下传智学生类。 都是.目前存在的问题:所有的学生都是中国 的,有 n 个学生就会有 n 份中国的 数据存内存中,这样子会浪费内存。目前方案: 把“中国”这个数据移动 到数据共享区象使用即可。享这个数据给所有的 Student 对问题 2: 如何才能把这个数据移动 到数据共享区享呢?解决方案: 只需要使用

46、 sic 修饰该数据即可。静态的成员变量只会在数据共享区中一份的。一份,而非静态成员变量的数据会在每个对象中都*/*构造代码块:构造代码块的作用:给对象进行的初始化。构造函数的作用: 给对应的对象进行初始化。构造代码块的格式:构造代码块注意: 构造代码块的大括号必须位于成员 位置上。代码块的类别:构造代码块。局部代码块.大括号位于方法之内。 作用:缩短局部点点内存。静态代码块 sic*/*构造 代码块要注意的事项:java 编译器编译一个java 源文件的时候,会把成员变量的前端。成员变量的初始化工作其实都在在构造函数中执行的。变量 的生命周期,节省一语句提前至一个类的最一旦经过java 编译

47、器编译后,那么构造代码块的代码块就会被移动构造函数中执行,是在构造函数之前执行的,构造函数的中代码是最后执行 的。成员变量的显示初始化与构造代码块 的代码是按照当前代码的顺序执行的。*/Day08/*构造函数:构造函数的作用: 初始化对应的对象。构造函数的格式:修饰符 函数名(形式参数)函数体构造函数要注意的事项:构造函数是没有返回值类型的。构造函数的函数名是必须与类名一致。3. 构造函数不是由的对象传递的参数调用对应 的对象。手动调用的,是在创建了对应的对象时,jvm 会根据你创建如果一个类没有显示写上一个构造函数的时候,那么 java 编译器会为该类添加一个无参 的构造函数。如果一个类已经

48、显示写上一个构造函数的时候,那么 java 编译器则不会再为该类添加一个无参 的构造函数。构造函数是可以以函数重载的形式存在多个。构造代码块:构造代码块的作用:给对象进行的初始化。构造代码块 的格式:代码;构造代码块是在创建了代码块所属类的对象时调用一次。this 关键字:this 关键字代表了所属函数的调用者对象。this 关键字的作用:1.一个类中存在同名的成员变量与局部变量时,在方法的内部默认是局部 变量的,可以通过 this 关键字指定成员变量 的数据。2.this 关键字还可以在构造函数中调用另外一个构造函数初始化对象,this 关键字调用构造函数要注意的事项:1. this 关键字

49、调用其他 的构造函数时,必须要是在第一个语句。2. this 关键字调用构造函数时不能出现相用,因为是一个死循环。3. 如果在方法的内部一个变量时,该变量只存在于成员变量中,局部没有没有,这时候 java 编译器会为该变量的前面添加 this 关键字。sic(静态、修饰符)sic 修饰成员变量时:sic 修饰成员变量时,那么该成员变量的数据就是一个共享的数据.静态成员变量的方式:方式一: 使用对象进行。对象.属性名方式二:可以使用类名进行类名.属性名。注意:1. 非静态成员变量不能类名直接,只能使用对象进行。2. 千万不要为了方便数据 时才使用 sic 修饰。成员变量而使用sic 修饰,一定要

50、是该数据是共享*/*sic(静态、修饰符)sic 修饰成员变量时:sic 修饰成员变量时,那么该成员变量的数据就是一个共享的数据.静态成员变量的方式:方式一: 使用对象进行对象.属性名。方式二:可以使用类名进行类名.属性名。注意:1. 非静态成员变量不能类名直接,只能使用对象进行。2. 千万不要为了方便数据 时才使用 sic 修饰。成员变量而使用sic 修饰,一定要是该数据是共享sic 修饰方法(静态的成员方法):方式:方式一:可以使用对象进行。对象.静态的函数名();方式二:可以使用类名进行。类名.静态函数名字。使用是类名直接静态的成员。静态的成员变量与非静态的成员变量的区别:1. 作用上的

51、区别:1. 静态的成员变量的作用共个 数据给所有的对象使用。2. 非 静态的成员变量的作用是描述一类事物的公共属性。2. 数量与位置上的区别:1. 静态成员变量是方法 区内存中,而且只会存在一份数据。非静态的成员变量是生命周期的区别:在堆内存中,有 n 个对象就有 n 份数据。静态的成员变量数据是随着类的加载而存在,随着类文件的非静态的成员数据是随着对象的创建而存在,随着 对象被而。回收器回收而消失。静态函数要注意的事项:1. 静态函数是可以调用类名或者对象进行调用的,而非静态函数只能使用对象进行调用。2. 静态的函数可以直接静态的成员,但是不能直接非静态的成员。原因:静态函数是可以使用类名直

52、接调用的,这时候可能还没有存在对象,而非静态的 成员数据是随着对象 的存在而存在的。3. 非静态的函数是可以直接静态与非静态的成员。原因:非静态函数只能由对象调用,当对象存在的时候,静态数据老早就已经存在了,而非静态数据也随着对象的创建而存在了。4. 静态函数不能出现 this 或者 super 关键字。原因:因为静态的函数是可以使用类名调用的,一旦使用类名调用这时候不存在对象,而 this关键字是代表了一个函数 的调用者对象,这时候产生了。静态的数据的生命周期:静态的成员变量数据是优先于对象存在的。sic 什么时候修饰一个函数?如果一个函数没有直接用于工具类型的方法到非静态的成员时,那么就可

53、以使用 sic 修饰了。 一般静态函数不能非静态的成员?静态函数只要存在有对象,那么也可以非 静态的数据。只是不能直接而已。*/*main 函数的详解:public : 公共的。 权限是最大,在任何情况下都可以。 private原因: 为了保证让jvm 在任何情况下都可以到main 方法。sic:静态。静态可以让jvm 调用main 函数的时候更加的方便。不需要通过对象调用。void:没有返回值。 因为返回的数据是 给 jvm,而 jvm 使用这个数据是没有意义的。所以就不要了。main: 函数名。名而已。注意: main 并不是关键字,只不过是 jvm 能识别的一个特殊的函数argument

54、s :担心某些程序在启动需要参数。*/*单例设计模式:保证一个类在内存中只有一个对象。模式:模式就是解决 一类 问题的固定步骤 。模式的概念最早于建筑行业.建房子的步骤都是一样子:打地基- 浇柱子-盖楼面-砌墙-封顶-装修入住软件行业中 23 种设计模式:单例设计模式 模板设计模式 装饰者设计模式观察者设计模式工厂设计模式单例设计模式的步骤:饿汉单例设计模式构造函数。1.2.本类的类型变量,并且使用该变量指向本类对象。3. 提供一个公共静态的方法获取本类的对象。懒汉单例设计模式:构造函数。本类的类型变量,但是不要创建对象,1.2.3. 提供公共静态 的方法获取本类 的对象,获取之前先判断是否已

55、经创建了本类对象,如果已经创建了,那么直接返回对象即可,如果还没有创建,那么先创建本类的对象,然后再返回。使用: 饿汉单例设计模式。 因为懒汉单例设计模式会存能保证一类在内存中只有一个对象。程安全问题,目前还不*/*目前的问题:父类的功能子类的需求。方法重写的前提: 必须要存在继承的关系。方法的重写: 子父类出了同名的函数,这个就称作为方法的重写。什么是时候要使用方法的重写:父类的功能子类的需求时。方法重写要注意的事项:方法重写时, 方法名与形参列表必须一致。方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。方法重

56、写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。Exception()RuntimeException(小坏)方法的重载:在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。方法重载的要求函数名要一致。形参列表不一致(形参的个数或形参 的类型不一致)与返回值类型无关。*/.*super 关键字:super 关键字代表了父类空间的。super 关键字的 作用:1. 子父类存在着同名的成员时,在子类中默认是子类的成员,可以通过 super 关键字指定父类的成员。2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过 super 关键字指定调用父类的构造方法。super

57、 关键字调用父类构造方法要注意的事项:如果在子类的构造方法上没有指定调用父类的构造方法,那么 java 编译器会在子类的构造方法上面加上 super()语句。super 关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。super 与 this 关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。super 关键字与 this 关键字的区别:1. 代表的事物不一致。1. super 关键字代表的是父类空间的。2. this 关键字代表的是所属函数的调用者对象。使用前提不一致。super 关键字必须要有继承关系才能使用。this 关键字不需要

58、存在继承关系也可使用。调用构造函数的区别:super 关键字是调用父类的构造函数。this 关键字是调用本类的构造函数。*/*疑问: 为什么要调用父类的构造方法啊?这样子做的意义在那?调用父类 的构造方法是可以初始化从父类继承下去的属性的。*/*instanceof 关键字instanceof 关键字的作用:判断一个对象是否属于指定的类别。instanceof 关键字的使用前提:判断的对象与指定的类别必须要存在继承或者实现的关系。instanceof 关键字的使用格式:对象 instanceof 类别instanceof 关键字的作用: 目前没用。但是后天学习 到了多态之后就非常有用。一般做强

59、制类型转换之前都会使用该关键字先判断一把,然后在进行转换的。*/*目前存在的问题:无法描述清楚这两个类之间的继承关系。存在着重复代码。面象的三大特征:封装继承多态.继承:继承是通过关键字 extends 体现的。继承的格式:class 类名 1 extends 类名 2继承要注意的事项:千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承。父类私有的成员不能被继承。父类的构造函数不能被继承。创建子类对象时默认会先调用父类无参的构造函数。*/Day09复习/*sic(静态、修饰符)sic 修饰成员变量: 如果一个成员变量使用sic 修饰,那么该成员变量的数据就是一个共享 的数据

60、.,、静态成员变量的方式方式一:可以使用对象对象.属性名方式二:可以使用类名类名.属性名。注意:1. 非静态成员变量不能使用类名直接,要使用对象.2. 千万不要为了时候才使用sic 修饰。方便而使用sic 修饰。一定要数据真正是需要被共享的sic 修饰成员函数:静态函数的方式方式一:可以使用对象对象.属性名。方式二:可以使用类名类名.属性名。使用类名静态的成员。静态函数要注意的细节:1. 非静态函数只能由对象调用,静态函数可以由类名或者对象进行调用。静态函数中不能直接非静态函数可以直接非静态成员,可以直接静态的成员。非静态成员以及可以直接静态的成员。4. 静态函数中不能出现this 或者 su

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论