Java学习笔记(必看经典)_New - 共33页

合集下载

Java读书笔记

Java读书笔记

Java读书笔记第一篇:Java读书笔记读书笔记1、类和对象:类是用来定义一组对象共同具有的状态和行为的模版。

而对象是现实世界中个体或事物的抽象表示,并且封装了它们的属性和行为。

2、为了防止命名冲突,Java采用了管理类文件的机制,即类包机制。

(package)定义包名的语法格式:“package包名;”Java命名规则要求包的命名需要使用小写字母。

3、成员变量和成员方法:1成员变量是在类体中定义的变量即全局变量,○成员变量一般用于定义对象的状态。

成员变量是给对象使用的,每个对象被创建后都会有属于自己的属性,即成员变量。

通过修改这些属性,从而改变对象的某个状态。

2成员方法是对象行为的描述。

○定义成员方法的语法格式:“[修饰符] 返回值类型方法名([形参表]){······//方法体}”修饰符:可以是:publicprivateprotactedstaticfinall等;返回值类型:如果方法需要返回值,必须这里声明方法的返回值类型,可以是基本数据类型(int short double booleanvoid等),也可以是对象类型如:数组、字符串等。

形参表:(可选部分)说明方法被调用时应该向它传递的数据。

形参表可以有一个也可以有多个,当有多个形参时每个形参之间要用“,”隔开。

1创建对象:创建对象使用到new语句。

4、对象:○声明并创建对象的语法格式如下:“类名对象名=new 类构造方法()”构造方法:构造方法是类创建对象是必须执行的方法,用于构造一个新的对象并初始化对象属性。

2访问对象的属性:○语法格式:“对象名.属性”3执行对象的行为:○对象的行为就是对象的成员方法,通常说调用或执行对象的某个方法。

语法格式:“对象名.成员方法名();”4对象的销毁:Java提供了垃圾回收机制,对不再使用的对象会自动销毁,也可○以在程序中显式的为某个对象赋null值,使对象不再被使用。

java笔记大全最全最快学习java

java笔记大全最全最快学习java

Java语言是sun公司,已经被甲骨文Oracle公司收购起源于1996年,前身oak语言编程语言分类:编译型和解释型JDK:java开发工具包(编译)JDK1.2JDK1.3JDK1.4JDK5 变化巨大JDK6JDK7JRE:java运行环境(运行)JVM:java虚拟机Java三个版本(旧称):J2SE:java标准版(桌面应用)J2EE:java企业版(企业级开发)J2ME:java微小版(手机开发)Java三个版本(新称从JDK5以后):JavaSEJavaEEjavaME查看已安装的JDK:开始——运行:cmd,java -versionJava语言的优点:跨平台(跨操作系统)面向对象(相对于面向过程)多线程(并发)网络编程强开源(开放源代码)缺点:运行慢不适合图形编程Java源文件的扩展名是.javaJava程序最小的程序单元是一个类class{ }语句块可以在其中写一到多条语句main方法(主方法)是程序入口方法,一个项目必须要有一个main方法源文件.java文件需要编译成.class文件(类文件字节码文件)编译文件命令javac 文件完整名称运行类文件java 类名软件开发流程:1、可行性分析2、需求分析->开发测试3、概要设计->分隔模块,定义框架等4、详细设计->类设计、接口设计5、编码6、测试7、部署8、维护单元测试:要求:要有边界值的分析,主要针对分支语句的临界点语句覆盖,保证写的任何语句都要运行到判定覆盖,所有判断的地方都要覆盖掉条件覆盖,保证所有条件都要覆盖掉路径覆盖,所有分支都要测试到步骤:1、针对每个类写一个TestCase,在setUp方法中初始化要测试类,在tearDown方法中将测试类置为null2、逐一编写以test开头的方法3、新建一个套件类,再把所有的TestCase类加入套件类Ant:用于对项目的整体构建、修改及部署等操作Ant的下载:去阿帕奇官方网站下载在eclipse的eclipse3.2\plugins\org.apache.ant_1.6.5建立ant的步骤:1、写类:src和build.xml必须自己写,src中的源程序要按照包结构去构建好projectNameclassessrcbuild.xml2、写build.xml<?xml version="1.0" encoding="GB2312" ?><!-- 一个项目,可包含很多任务组(target) --><project default="main" basedir="."><!--属性部分,可以写类似全局变量--><property name="src" value="src\test" /><!-- 项目中的一个任务组,可包含很多任务(task:javac,java...) --><target name="main" description="begin build"><!--创建目录--><mkdir dir="classes" /><!--编译--><javac srcdir="${src};src" destdir=".\classes"/><!--运行--><java classname="test.Test"><classpath><pathelement path=".\classes"/></classpath></java></target><!--清除所有class--><target name="clean" description="begin clean"><delete dir="classes" /></target><!--重新建立项目--><target name="all" depends="clean,main" description="begin all"></target></project>3、ant配置环境变量Path->org.apache.ant_1.6.5\binClassPath->org.apache.ant_1.6.5\lib4、运行创建可运行的jar文件:1、先建起一个空文件夹2、把所有的源文件拷贝到该文件夹下3、javac -d . * 编译此文件夹下各源文件4、删除源文件5、jar -cvf test.jar * 完成第一次打包6、jar -xvf test.jar 解压7、删除test.jar8、改META_INF中的文件,加上Main-Class: MenuFrame (注意中间有空格),保存9、jar -cvfM test.jar *10、java -jar test.jar 可以运行重构:在不改变软件任何功能的前提下对代码进行修改,调整其结构,提高其可读性,降低其修改的成本。

java基础知识大全(必看经典)

java基础知识大全(必看经典)

第一讲 Java语言入门1.1 Java的特点1.1.1面向对象:•与C++相比,JAVA是纯的面向对象的语言C++为了向下兼容C,保留了很多C里面的特性,而C,众所周知是面向过程的语言,这就使C++成为一个"混血儿"。

而JAVA语法中取消了C++里为兼容C所保留的特性,如取消了头文件、指针算法、结构、单元等。

1.1.2可移植(平台无关性):•生成中间字节码指令与其他编程语言不同,Java并不生成可执行文件(.exe文件),而是生成一种中间字节码文件(.class文件)。

任何操作系统,只要装有Java虚拟机(JVM),就可以解释并执行这个中间字节码文件。

这正是Java实现可移植的机制。

•原始数据类型存储方法固定,避开移植时的问题Java的原始数据类型的大小是固定的。

比如,在任何机器上,整型都是32位,而C++里整型是依赖于目标机器的,对16位处理器(比如8086),整数用两个字节表示;在像Sun SPARC这样的32位处理器中,整数用4个字节表示。

在Intel Pentium处理器上,整数类型由具体的操作系统决定:对于DOS和Win32来说,整数是2个字节;对于Windows 9x 、NT和2000,整数是4个字节。

当然,使整数类型平台无关之后,性能必然有所下降,但就Java来说,这个代价是值得的。

Java的字符串,则采用标准的Unicode格式保存。

可以说,没有这个特性,Java的可移植性也不可能实现。

1.1.3简单•JAVA在语法上与C++类似JAVA的语法与C++很接近,有过C或者C++编程经验的程序员很容易就可以学会JAVA语法;•取消了C++的一些复杂而低效的特性比如:用接口技术代替了C++的多重继承。

C++中,一个类允许有多个超类,这个特性叫做"多重继承",多重继承使得编译器非常复杂且效率不高;JAVA 的类只允许有一个超类,而用接口(Interface)技术实现与C++的多继承相类似的功能其它被取消的特性包括:虚拟基础类、运算符过载等•JAVA的基本解释器和类支持模块大概仅40K即使加入基本的标准库和支持线程的模块,也才220K左右。

java-课堂笔记-第一章至第八章知识点梳理

java-课堂笔记-第一章至第八章知识点梳理

Java-课堂笔记-第一章至第八章知识点梳理1.控制台程序开发1.1 开发Java程序的步骤(1)编写源程序:Java源程序文件后缀名.java(2)编译源程序:使用javac命令编译源程序,编译之后的文件后缀名.class (3)运行使用java命令运行编译之后的.class文件1.2 程序开发环境记事本、Eclipse或MyEclipse1.3 控制台输入/输出(1)从控制台输入信息使用Scanner对象第一步:创建一个Scanner扫描器对象Scanner input = new Scanner(System.in);第二步:导入Scanner包import java.util.Scanner;第三步:获取从控制台输入的整数int num = input.nextInt();获取从控制台输入的小数double num = input.nextDouble();获取从控制台输入的字符char ziFu = input.next().charAt(0);获取从控制台输入的字符串String str = input.next();(2)从控制台输出信息使用System.out.print();System.out.println();转义字符:\n:换行\t:一个制表符(8个空格)1.4 程序注释Java中的注释有3种:(1)单行注释://这里是注释内容(2)多行注释:/*这里是注释内容*/(3)文档注释:/**这里是注释内容*/1.5 程序调试2.变量和运算符2.1 变量变量:变量就是变化的量,是数据存储空间的表示,即数据在内存空间地址的别名(1)变量的声明语法:数据类型变量名;举例:int score;//声明一个int类型的变量score,保存成绩(2)变量的赋值(初始化)基本数据类型的赋值使用“=”赋值语法:变量名 = 值;举例:score = 98;引用数据类型使用new关键字语法:数据类型变量名 = new 数据类型();举例:Scanner input = new Scanner(System.in);2.2 常量2.3 运算符(1)赋值运算符:=、+=、-=、*=、/=、%=举例:sum += i;//相当于sum = sum + i;(2)算术运算符:+、-、*、/、%(3)关系运算符:>、<、>=、<=、==、!=(4)逻辑运算符:&&、||、!(5)自增运算符:i++或++ii++ 相当于 i = i + 1;(6)自减运算符:i--或--ii-- 相当于 i = i - 1;(7)三目运算符:?:3.数据类型与数组3.1 数据类型(1)基本数据类型整型:byte、short、int、long浮点型:float、double字符型:char布尔型:boolean(2)引用数据类型String、数组、类(class)、接口(3)数据类型转换自动数据类型转换自动数据类型转换的条件1.目标类型和源类型数据类型要兼容,数值类型(整型和浮点型)相互兼容2.目标类型要大于源类型,double型可以存放int型数据,因为double型变量分配的空间宽度足够存储int型变量强制数据类型转换语法:(数据类型)表达式;3.2 数组(1)数组的基本用法数组声明语法:数据类型[] 数组名;或数据类型数组名[];数组分配空间语法:数组名 = new 数据类型[数组长度];数组赋值静态赋值:给数组元素单个赋值如:scores[0] = 98;scores[1] = 87;动态赋值:使用for循环动态给数组元素赋值如:for(int i=0;i<scores.length;i++){ //每次循环把输入的数值赋值给数组元素scores[i] = input.nextDouble();}直接创建数组:方式一:数据类型[] 数组名={值1,值2,值3,....};方式二:数据类型[] 数组名=new 数据类型[]{值1,值2,值3,..};访问数组元素:语法:数组名[下标值];获取数组长度:语法:数组名.length;(2)数组应用数组排序:1.import java.util.Arrays;//导入Arrays工具包2.Arrays.sort(数组名);求最大值:(见第七章数组课堂笔记)求最小值:(见第七章数组课堂笔记)4.流程控制语句4.1 分支结构(选择结构)(1)if选择结构if(判断条件){执行语句;}(2)if-else选择结构if(判断条件){执行语句1;}else{执行语句2;}(3)多重if选择结构if(判断条件1){执行语句1;}else if(判断条件2){执行语句2;}else if(判断条件3){执行语句3;}else{执行语句4;}(4)嵌套if选择结构if(判断条件1){if(判断条件2){执行语句1;}else{执行语句2;}}else{执行语句3;}(5)switch选择结构switch(表达式){case 常量1:代码块1;break;case 常量2:代码块2;break;case 常量3:代码块3;break;.......default:代码块n;break;}4.2 循环结构(1)while循环while(循环条件){循环操作;}特点:先判断,后执行(2)do-while循环do{循环操作;}while(循环条件);特点:先执行,后判断(3)for循环for(循环初始变量;循环条件;循环变量的更新){循环操作;}循环次数固定的时候,优先选用for循环while、do-while、for三种循环的对比,需要重点看下4.3 跳转语句(1)break用在switch选择结构中,表示跳出switch选择结构用在循环结构中,表示跳出整个循环或结束整个循环用在二重循环结构中,表示结束内层循环,继续执行外层循环(2)continuecontinue只能用在循环结构中,表示结束本次循环,进入下一次循环用在二重循环结构中,表示结束内层循环的本次循环,进入下一次循环(3)return。

Java学习笔记(必看经典).pdf

Java学习笔记(必看经典).pdf
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。 实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚 )。 可复用性是 OOP 的基础。
比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符:instanceof a instanceof Animal;(这个式子的结果是一个布尔表达式) a 为对象变量,Animal 是类名。 上面语句是判定 a 是否可以贴 Animal 标签。如果可以贴则返回 true,否则返回 false。
在上面的题目中: a instanceof Animal 返回 True, a instanceof Dog 也返回 True,
This 表示当前对象。
Public void printNum(){ Int number=40; System.out.println(this.number);
} 此时打印的是实例变量,而非局部变量,即定义在类中而非方法中的变量。
This.number 表示实例变量。 谁调用 this.number 那么谁即为当前(this)对象的 number 方法。
可以构造多个构造方法,但多个构造方法的参数表一定不同,参数顺序不同即属于不同的构造方法: public student(string name,int a){ } public student(int a,string name){ } 为两个不同的构造方法。 如果我们未给系统提供一个构造方法,那么系统会自动提供一个为空的构造方法。 练习:写一个类,定义一个对象,定义两个构造方法:一个有参,一个无参。 (编写一个程序验证对象的传递的值为地址) 注意下面这种形式: static void changename(student stu){stu.setName “LUCY”} 注意生成新的对象与旧对象指向无关,生成新对象生命消亡与旧对象无关。

廖雪峰Java教程学习笔记(一)——Java程序基础

廖雪峰Java教程学习笔记(一)——Java程序基础

廖雪峰Java教程学习笔记(⼀)——Java程序基础(⼀)Java程序基本结构Java是⾯向对象的语⾔,⼀个程序的基本单位就是class。

在class内部,可定义若⼲⽅法。

类名要求:类名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼤写字母开头⽅法名要求:⽅法名必须以英⽂字母开头,后接字母,数字和下划线的组合习惯以⼩写字母开头(⼆)变量和数据类型在Java中,变量分为基本类型的变量和引⽤类型的变量。

例如:int x = 1; //定义了⼀个整型int类型的变量,名为x,初始值为1变量的⼀个特点是可以重新赋值,也可以赋值给其他变量。

值得注意的是,在第⼀次定义变量时需要指定变量类型,⽽第⼆次重新赋值时,该变量已经存在了,不⽤再指定变量类型。

基本数据类型整数类型:byte, short, int, long浮点数类型:float, double字符类型:char布尔类型:boolean计算机内存的最⼩存储单元是字节(byte),⼀个字节就是⼀个8位⼆进制数,即8个bit,字节的⼆进制表⽰范围为00000000~11111111,换算成⼆进制是0~255,换算成⼗六进制是00~ff。

Java基本数据类型占⽤的字节数类型byte short int long float double char字节 1 2 4 8 4 8 2定义基本数据类型时的注意事项整型最⾼位的bit表⽰符号位(0表⽰正数,1表⽰负数)long型的结尾需要加L(int l = 9000000000000000000L;)float型的结尾需要加f(float f = 3.14f;)char类型使⽤单引号‘ ’,且仅有⼀个字符,字符串使⽤双引号“ ”引⽤类型常量:定义变量的时候,如果加上final修饰符,这个变量就变成了常量。

常量名通常全部⼤写var关键字:省略变量类型可使⽤var关键字(三)整数运算Java的整数运算遵循四则运算规则,可以使⽤任意嵌套的⼩括号。

第一章-Java基础笔记

第一章-Java基础笔记

第⼀章-Java基础笔记Java语⾔的概述Java是⼀门⾯向对象的语⾔,Java相对于C语⾔来说学习相对简单,它主要的三⼤特点就是:封装、继承、多态,并且只需要进⾏⼀次源码编译,在任何装有对应版本的JVM 虚拟机环境的计算机下运⾏;Java的三个版本JavaSE主要⽤于桌⾯应⽤的开发JavaME主要⽤于嵌⼊式系统的开发JavaEE主要⽤于企业级的WEB端开发和服务器开发Java环境介绍JDK - 提供了开发者的⼀些⼯具包,并包含了[JRE和JVM]JRE - Java的运⾏环境,提供了运⾏时需要的类库,并包含了[JVM]JVM - Java的虚拟⼀块内存区域,⽤于执⾏Java的代码Java跨平台交互图Java代码的运⾏机制后缀点java的⽂件会通过 javac命令进⾏⽂件的编译成⼀个能够被JVM读懂的字节码⽂件,通过加载、校验、初始化的过程都内存中,通过JVM寄存器读取⽂件中的⾏号,进⾏执⾏相关代码;注释注释是为了在编写程序时对某个类、⽅法或是⼀段代码进⾏功能作⽤的说明,它不会被编译成代码执⾏,只是起到⼀个描述作⽤,便于对代码的理解;Java中的注释分为3种:单⾏注释://多⾏注释:/* */⽂档注释:/** */对注解的内容⽣成JavaDoc⽂档DOS命令进⼊到要⽣成Doc⽂档的层级⽬录,执⾏:javadoc -encoding UTF-8 -charset UTF-8 ⽂件名称/*** @Author JavaCat7* @Description 这是⼀个⽂档注释*/public class Demo{/*** @Parameter args 对参数的描述* @Description 这是⼀个⽂档注释*/public static void main(String[] args){//这是⼀个单⾏注释System.out.println("Hello Java");/*这是多⾏注释这是多⾏注释*/}}标识符每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;规范:每个⼈都有名字,⽽标识符是为了给代码中的类、接⼝、⽅法、变量取⼀个名字,但它们的明⽩是有着严格规范的;**规范:**1.严格区分⼤⼩写;2.开头可以是$ 或 _ 或 A-Z a-z的字母组成,也可以汉字(不会这么⼲);3.可以由数字、字母或者是 $ 或 _ 组成,但数字不能⽤于开始;4.不可以包含特殊字符;5.不能以Java语⾔中的保留字作为命名;6.类名采取⼤驼峰命名法;7.⽅法和变量采取⼩驼峰命名法;8.常量采取⼤学加_进⾏命名;基本数据类型Java是强类型计算机语⾔,所有的变量必须先定义才能使⽤,对于强类型⽽⾔主要就是指的数据安全,强类型的语⾔有很多,⽐如C、C++、python...计算机存储单位换算bit(位) - 是计算内部数据存储的最⼩单元,通过8个⼆进制位进⾏表⽰;byte(字节) - 是计算机中数据处理的基本单位,通常使⽤B来表⽰;8个bit(位) = 1B(字节)1024个B(字节) = 1KB1024个KB = 1MB1024个MB = 1GB....//整数类型byte a = 1;short b = 2;int c = 3;long d = 4L;//⼩数类型float e = 5.0f;duble f = 6.0d;//字符类型char g = 'a';//布尔类型boolean h = true;boolean i = false;数据类型的转换各数值相关数据类型⽀持类型上的转换,既可以把排序级别较低的类型转换成排序级别较⼤的类型,也可以把排序级别较⾼的类型转换成级别较低的类型(但会造成数据的丢失);数据的转换强制类型转换 - 在要转换的变量前使⽤:要转换的对应数据类型如- (int)⾃动类型转换 - 在不同的数值数据类型运算中,它会以排序级别较⾼的数据类型作为基础⾃动转换int number1 = 128;//正常byte的值是 -128 - 127,强制把int类型转换成byte会造成数据的不精确byte number2 = (byte)number1;int number3 = 519;float number4 = 1.0f;//在运算过程中因为float的排序级别⽐int⾼,那么它会⾃动转换成float类型在完成运算float number5 = number3 + number4;变量,静态变量,常量及作⽤域变量是指可以变化的值,通过数据类型和变量名可以在内存中申请⼀块存储的空间,通过内存的引⽤地址可以设置改变内存中存储的值或者修改值,所有的变量必须先赋值才可以使⽤;成员变量成员变量是指在类中与⽅法同级的位置中定义的成员变量,在该位置定义的变量可以不⽤设置值就可以使⽤,因为它会对类进⾏初始化,并完成初始化赋值,就算不给他们赋值也会有默认的初始值,他们的默认初始值都是最⼩的单元;作⽤域成员位置的变量,可以在⾮静态⽅法的所有位置使⽤,如果要在静态⽅法中使⽤,需要先创建对象;public class Variable{int a; //默认为:0float b; //默认为:0.0char c; //默认为:''boolean d; //默认为:false}局部变量局部变量是指在⽅法内部定义的变量,必须要先完成初始化后,才可以被使⽤;作⽤域局部位置的变量,外部⽆法使⽤,只能在⽅法内部使⽤,可以和外部的变量名称相同;public class Variable{int number;public void method(){int number = 3;//可以和成员位置的变量名称相同}}静态变量静态变量是指被static关键字修饰的变量,被修饰的变量⼜称为类变量;作⽤域静态变量可以作⽤域与所有⽅法中,静态变量只能定义在类的成员位置;public class Variable{static int number ;public static void main(String[] arags){System.out.println(number);}public void method(){System.out.println(numbe);}}常量常量是指不能被改变的值,它在创建到成员位置必须要先完成赋值,⼀旦被创建它的值是不允许被更改的;作⽤域它的作⽤域和成员变量相同public class Variable{final int NUMBER = 3.1415926;}静态常量静态常量是指从属于类的常量,在完成初始化以后是不可以被修改的,并且被public所进⾏修饰;作⽤域它的作⽤域和静态变量相同运算符算术运算符int a = 5;int b = 2;int number = a + b; //number = 7;int number = b - a; //number = 3;int number = a * b; //number = 10;int number = a / b; //number = 2,只取整数;double number = a / (double)b; //number = 2.5int number = a % b; //number = 1;⾃增⾃减运算符int a = 1;int b;b = a++; //b = 1; 先把a的值赋值给b,后a进⾏ +1 操作;b = a--; //b = 2; a前⾯进⾏了⾃增那么就是2,先把2赋值给b,然后进⾏ -1 操作;b = ++a; //b = 2; 前⾯a进⾏了⾃减那么就是1,先对a进⾏⾃增加1,然后在赋值给b;b = --a; //b = 1; 前⾯a是2,先对a进⾏⾃减1,在赋值给b;赋值运算符int a = 5;//把 5 赋值给 a;int b = 2;//把 2 赋值给 b;a += b; // a = 7(a+b的结果在赋值给a);a -= b; // a = 3;a *= b; // a = 10;a /= b; // a = 2;a %= b; // a = 1;关系运算符int a = 5;int b = 2;a > b; //truea < b; //falsea >= b; //falsea <= b; //truea == b; //falsea != b; //true逻辑运算符boolean a = true;boolean b = false;a &&b = false;//都true则true,第⼀个条件为false就不会在看第⼆个条件,直接返回falsea ||b = true;//⼀个条件为true则true,第⼀个条件为tre就不看第⼆个条件,直接返回true! a = false;//取反a &b = false;//2个条件都要执⾏a |b = true;三元运算符int a = 5;int b = 5;a ==b ? "等于":"不等于"; //为true返回第⼀个,为false返回第⼆个流程控制语句If语句if语句就是判断条件是否成⽴,成⽴就执⾏if中的代码,不成⽴就不进⼊;boolean flag = true;if(flag){System.out.println("...");}if...else语句if...else语句就是根据判断的条件是否成⽴,成⽴⾛if语句,不成⽴⾛else语句;boolean flag = true;if(flag){System.out.println("成⽴");}else{System.out.println("不成⽴");}if...else if语句if...else if⽀持多条件的判断,只会进⼊⼀个匹配的条件;boolean flag = true;boolean fail = false;if(flag){System.out.println("条件匹配");}else if(fail){System.out.println("条件匹配");}else{System.out.println("条件都不匹配");}switch条件控制语句witch语句从JDK1.7开始可以⽀持匹配:String字符串;注意事项:每个case 后⾯必须跟⼀个数值常量或字符串常量⽤于匹配;匹配的语句后⾯需要加上break关键字,防⽌case穿透;String week = "星期⼀";switch(week){case "星期⼀":System.out.println("今天是星期⼀");break;case "星期⼆":System.out.println("今天是星期⼆");break;case "星期三":System.out.println("今天是星期⼆");break;default:System.out.println("今天星期⼏都不是");}循环控制语句for循环语句for(初始值,条件表达式,更新)for(int i = 1 ; i <= 10 ; i++){System.out.println(i);}增强for循环for(接收类型的变量,表达式)int [] arrays = {1,2,3,4,5,6,7,8,9,10};for(int i : arrays){System.out.println(arrays);}while循环语句while(条件表达式)int number = 1;while(number <= 100){System.out.println(number);number ++;}do...while循环语句do{先把语句执⾏⼀遍}while(条件表达式);boolean flag = true;do{System.out.println("先执⾏⼀遍");flag = false;}while(flag);break和continue关键字break关键字结束循环的意思;for(int i = 1; i <= 100; i++){if(i == 10){System.out.println("打印10后结束循环");break;}}continue关键字跳过当前循环,进⼊下⼀次循环;for(int i = 1 ; i <= 10; i ++){if(i % 2 == 1){continue;}System.out.println("打印:"+i);}⽅法概述:⽅法就相当于使⽤多⾏代码进⾏组合去实现的⼀个功能⽚段,对代码进⾏封装利⽤,可实现多次调⽤;⽅法的定义修饰符返回值⽅法名称(形参形参名称){⽅法体}public class Function{public static void main(String[] arags){}public void method1(){}public void method2(String name,int age){}public static void method3(){}public int method03(){int a = 3;return a;}public int method04(int a,int b){if(a == b){System.out.println(a + "和" + b + "相等");return -1;}return a > b ? a : b;}}⽅法的重载⽅法的重载是指⽅法名称相同,传递的参数类型不同,个数不同,顺序不同与返回值⽆关;这样的⽅法被称为⽅法的重载;public class Function{public int max(int a,int b) {return a > b ? a : b;}public double max(double a,double b){return a > b ? a : b;}}形参和实参形参是指在()内部的参数,实参是指被真实传递的参数;public class Function{public static vid main(String[] args){Function function = new Function();function.max(3,5);}public int max(int a,int b) {return a > b ? a : b;}}可变参数在⽅法的()中我们有时候不知道要传递多少参数,那么我们可以传递⼀个数据类型紧跟后⾯加上...来表⽰;但需要注意的是⼀个⽅法中指允许⼀个可变参,如果有其他类型的参数,那么可变参数需要写在最后⾯;可变参数本质上就是⼀个数组;public class Function{public void method(String name,int... numbers){for(int num : numbers){System.out.println(num);}}}递归递归的本质就是⾃⼰调⽤⾃⼰,它可以解决⼀些业务,但效率和开销较⼤,对⼀些⽐较⼩的运算可以使⽤;//递归求3的阶乘public class Founction{public static void main(String[] args){}public int founction(int number){int result = 1;if(number == result){return result;}return number * founction(number - 1);}}数组数组就是⼀组数据的集合,Java中的数组必须存储和数据类型相符合的值,不允许与定义的数据类型不匹配;⼀旦数组被创建出来,它的长度就不允许被改变,数组有下标(索引)的概念,都是从0开始,如果操作的数据超过数组的长度那么就会报出下标索引越界异常[ IndexOutofBoundsException ];数组的定义int[] array = new int[3];int array[] = new int[3];int array[] = {1,2,3};数组的内存模型图数组的遍历⽅式int[] arr = new int[10];//⽅式⼀for (int i = 0; i < arr.length ; i ++) {System.out.println(arr[i]);}//⽅式⼆for (int num : arr) {System.out.println(num);}⼆维数组int[][] arr = new int[3][2];String[][] strArr = {{"hello","hello"},{"hi","hi","hi",{"java","java","java","java"}}Arrays⼯具类Arrays数组的⼯具类,是jdk已经帮我们提供好的⼀套数据⼯具类,⽅便我们对数据相关进⾏⼀些操作;int[] arr = {3,51,1,33,82,22,55,53};Arrays.toString(arr);//把数组变成⼀个字符串Arrays.sort(arr);//对数组内容进⾏升序排列Arrays.fill(arr,0);//把数组的内容全部进⾏替换为0常见算法冒泡排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//冒泡排序算法public static void popArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每次⽐较⼀轮,需要减少1次⽐较的次数for (int j = 0; j < arr.length - i - 1; j++) {//如果前⾯的数据⽐后⾯⼤,那么就交换位置if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}选择排序public static int[] arr = new int[]{5, 2, 7, 4, 6, 9, 8, 13, 19, 11, 17, 15};//选择排序public static void selectOrderArithmetic(int[] arr) {//⽐较的轮数是数组长度-1for (int i = 0; i < arr.length - 1; i++) {//每⽐较⼀次,需要减少1次⽐较的次数,会把⼩的先往前排for(int j = i+1;j<arr.length;j++){if(arr[i]>arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println("最终结果是:" + Arrays.toString(arr));}⼆分查找public static int[] arr = new int[]{1, 2, 3 , 4, 6, 7, 8, 13, 19};//2分查找法public static void branchFind(int [] arr,int number){int startNode = 0;int endNode = arr.length-1;int middle = 0;while (startNode <= endNode){//中间的指针由开始节点和结束节点计算得来middle = (startNode+endNode)/2;if(number == arr[middle]){System.out.println("找到了");break;}else if(number < arr[middle]){endNode=middle-1;System.out.println(number+"⼩于中间值,结束节点变更为中间节点-1"); }else if(number > arr[middle]){startNode = middle+1;System.out.println(number+"⼤于中间值,开始节点变更为中间节点+1"); }else{System.out.println("没有找到该元素");break;}}}。

java课堂笔记(全部基础知识)

java课堂笔记(全部基础知识)

Java_U1课堂笔记(一)初识Java一、配置Java环境变量:1、复制JDK安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0_51\bin2、粘贴到我的电脑->属性->高级系统设置->环境变量->Path3、加上英文的分号4、验证是否配置正确:dos-->java -version进入DOS窗口的方法:运行(或快捷键windows键+r)二、Java程序编写三步骤:编写 .java编译:javac **.java运行java **三、使用jad反编译工具:DOS中切换至jad安装目录,如:C:\jad1.5.8g.win输入命令:jad -s java D:\t01\HelloWorld.class四、变量的使用:页脚内容1变量取名,命名规则类型数值:int、double、float(f)非数值:char、String类型名字= 值;int age=10;五、上机验证:System.out.println(5+3);System.out.println("5"+3);六、Scanner的使用,接收用户键盘输入Scannerimport java.util.Scanner;Scanner input=new Scanner(System.in);input.next();(相关方法,nextDouble()、nextFloat()、nextInt(等)bin:exejre页脚内容2libsrc.zip(二)数据类型一、数据类型转换自动类型转换:int num=100;double b=num;强制类型转换double num=100.9;int b=(int)num;二、运算符赋值运算符=算数运算符+ - * / % ++ --+= -= *= /= %=关系运算符> < >= <= == !=逻辑运算符&& || !页脚内容3条件运算符?:了解优先级即可三、流程控制1、if:基本ifif-else多重if嵌套if注意:条件是boolean值常见错误:if(num=5){}else{}大括号不省略多重if顺序问题注意:页脚内容4流程图的使用和问题的分析解决过程2、switch等值比较注意:(1)语法上的常见错误(2)和多重if的异同循环结构:解决重复性的操作简介高效(三)循环结构一:循环:(1)while循环while(条件){操作循环变量迭代}注意:页脚内容5代码缩进循环能否正常退出(2)do-while循环do{循环}while(条件);注意:代码缩进循环能否正常退出和while的区别:语法上、执行上(至少执行一次)(3)for循环for(变量初始化;条件;变量迭代){循环操作}页脚内容6注意:代码缩进循环能否正常退出执行顺序循环变量可以有多个二、双重循环双重循环的特点:外层循环进入一次,内层循环就要完整的执行一遍特点:外执行一次内执行一轮双重循环次数:外层循环次数*内层循环的次数实现的重点:页脚内容7(1)确定谁做外层循环,确定谁做内层循环(2)两层循环变量有没有规律性的关系1、打印图形:找规律矩形行i外层星星j内层1 52 53 54 55 5平行四边形行i外层内层:空格星星1 4=5-i 52 3=5-i 53 2=5-i 5页脚内容84 1=5-i 55 0=5-i 5等腰三角形行i外层内层:空格星星1 4=5-i 1=2*i-12 3=5-i 3=2*i-13 2=5-i 5=2*i-14 1=5-i 7=2*i-15 0=5-i 9=2*i-12、打印九九乘法表行i(1-9)第一个操作数i 第二个操作数(从1到i)三:循环应用1、分析需求:重复做一件事情前提条件(循环进入的条件)做什么事情(循环操作)页脚内容92、用代码解释选择一种合适的循环结构whiledo-whilefor根据所选择的结构套用语法while(条件){}do{}while(条件);for(循环变量初始化;条件;迭代){}3、容易出错的点(1)变量在何处声明例1:计算5门课平均成绩页脚内容10例2:for(int i=0;i<=6;i++){System.out.println(i);}int j=i;System.out.println(j);(2)没有适当的(合适的)跳出循环根本跳不出来根本进不去循环多或少循环了一次四、循环的跳转break:跳出整个循环continue:跳出本次循环,进入下次循环return:结束方法(了解即可)五、程序调试页脚内容11设置断点Debug->单步运行F5 F6观察变量(三)数组一、数组1、数组的基本使用(1)数组的作用一组相同数据类型的数数组也是变量,内存中一串连续的空间(2)数组的几个基本概念标识符(数组名字)元素下标:从0开始数据类型数组的长度(数组名字.length)(3)数组使用步骤声明数组页脚内容12int[] num;int num[];分配空间num=new int[8];赋值处理数据int[] num={5,8,7};int[] num=new int[]{5,8,7};(4)循环和数组结合的使用下标(0-数组.length-1)遍历时两种方法:方法一:传统for方法二://增强型for(foreach)for(int score:scores){sum+=score;页脚内容13}二、回顾数组变量,内存中一串连续的空间相同数据类型的一组数据数组的基本概念元素数据类型(数组类型)下标(0,数组.length-1)数组的长度:数组.length数组的基本使用声明数组(类型[] 数组名称或类型数组名称[])分配空间(数组名称= new 数据类型[5];)赋值(num[0]= ;)处理数据变量:基本数据类型页脚内容14int、double、float、char、boolean引用数据类型String、数组内存分布不同使用上不同.三、数组的典型使用1、求最大值、最小值(打擂台)2、插入算法(找位置)3、冒泡排序数组存储5个数字下标:0 1 2 3 4外层循环内层循环i:0第一轮+ j比较次数:4 =4:length-1页脚内容15i:1第二轮+ j比较次数:3=4:length-1i:2第三轮+ j比较次数:2 =4:length-1i:3第四轮+ j比较次数:1=4:length-1i+j=数组.length-1j=数组.length-1-i共比较几次?5个数字:4+3+2+1=106个数字:5+4+3+2+1=157个数字:6+5+4+3+2+1=21n个数字:(n-1)+(n-2)+(n-3)+.....+1=n*(n-1)/24、Arrays类的使用常用方法:页脚内容16sort().....记得查API帮助文档(帮助文档已经在网盘中提供了,如果大家在Oracle官网中没有下载,可以找中心的技术顾问老师提供网盘用户名和密码,登录后拿到帮助文档)数据类型基本数据类型int double char boolean 。

Java基础笔记狂神说版

Java基础笔记狂神说版

Java基础笔记狂神说版Java基础学习笔记(狂神说版)三、Java⽅法(⼀)⽅法的重载1. 重载的概念:重载就是在⼀个类中,有相同的函数名称,形参不同的函数。

2. ⽅法重载的规则:(1)⽅法名必须相同(2)参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)(3)⽅法的返回类型可以相同,也可以不同(4)仅仅返回类型不同不⾜以成为⽅法的重载3. 实现理论:⽅法名称相同时,编译器会根据调⽤⽅法的参数个数,参数类型去逐个匹配,以选择对应的⽅法,如果匹配失败,则编译器报错(⼆)⽅法的可变参数可变参数(不定项参数):JDK1.5开始,Java⽀持传递同类型的可变参数给⼀个⽅法在⽅法声明中,在指定参数类型中加⼀个省略号(...)⼀个⽅法中只能指定⼀个可变参数,他必须是⽅法的最后⼀个参数,普通参数声明必须在其之前(三)⽅法的递归递归就是:A⽅法调⽤A⽅法!就是⾃⼰调⽤⾃⼰递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,⼤⼤减少了程序的代码量。

递归的能⼒在于⽤有限的语句定义对的⽆限集合。

递归结构包括两个部分:(1)递归头:什么时候不调⽤⾃⾝⽅法。

如果没有头,将陷⼊死循环。

(2)递归体:什么时候需要调⽤⾃⾝⽅法。

四、Java数组(⼀)数组的概念数组的定义:数组是相同类型数据的有序集合。

数组描述的是相同类型的若⼲个数据,按照⼀定的先后次序排列组合⽽成。

其中,每⼀个数据称作⼀个数组元素,每个数组元素可以通过⼀个下标来访问他们。

数组的四个基本特点:(1)其长度是确定的。

数组⼀旦被创建,它的⼤⼩就是不可以被改变的。

(2)其元素必须是相同类型,不允许出现混合类型。

(3)数组中的元素可以是任何数据类型,包括基本类型和引⽤类型。

(4)数组变量属引⽤类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。

数组本⾝就是对象,Java中对象是在堆中的,因此数组⽆论保存原始类型还是其他对象类型,数组对象本⾝是在堆中的。

JAVA学习完整版详细笔记

JAVA学习完整版详细笔记

Java基础知识总结Java基础知识总结写代码:1,明确需求。

我要做什么?2,分析思路。

我要怎么做?1,2,3。

3,确定步骤。

每一个思路部分用到哪些语句,方法,和对象。

4,代码实现。

用具体的java语言代码把思路体现出来。

学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。

demo4,该技术什么时候用?test。

-----------------------------------------------------------------------------------------------一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。

2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。

3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。

环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。

(完整版)最全的java学习笔记(必看)

(完整版)最全的java学习笔记(必看)

Java学习笔记目录一、Java技术基础 .........................................................................................................................1.1编程语言...............................................................................................................................1.2 Java的特点...........................................................................................................................1.3 Java开发环境.......................................................................................................................1.4 Java开发环境配置...............................................................................................................1.5 Linux命令与相关知识 ........................................................................................................1.6 Eclipse/Myeclipse程序结构 ................................................................................................二、Java语言基础 .........................................................................................................................2.1基础语言要素.......................................................................................................................2.2八种基本数据类型...............................................................................................................2.3常量和变量...........................................................................................................................2.4运算符与表达式...................................................................................................................2.5编程风格...............................................................................................................................2.6流程控制语句.......................................................................................................................2.7数组.......................................................................................................................................2.8字符串...................................................................................................................................2.9方法三要素...........................................................................................................................2.10插入排序.............................................................................................................................2.11冒泡排序.............................................................................................................................2.12冒泡排序:轻气泡上浮的方式.........................................................................................2.13二分法查找.........................................................................................................................2.14 Java系统API方法调用 ....................................................................................................2.15二进制基础.........................................................................................................................2.16 Java基础其他注意事项.....................................................................................................三、面向对象 .................................................................................................................................3.1类...........................................................................................................................................3.2对象.......................................................................................................................................3.3包...........................................................................................................................................3.4方法及其调用.......................................................................................................................3.5引用.......................................................................................................................................3.6访问控制(封装)...............................................................................................................3.7构造器...................................................................................................................................3.8 super()、super.和this()、this........................................................................................3.9重载和重写...........................................................................................................................3.10继承.....................................................................................................................................3.11 static ....................................................................................................................................3.12 final .....................................................................................................................................3.14抽象类.................................................................................................................................3.15接口.....................................................................................................................................3.16内部类.................................................................................................................................3.17匿名类.................................................................................................................................3.18二维数组和对象数组.........................................................................................................3.19其他注意事项.....................................................................................................................四、Java SE核心I .........................................................................................................................4.1 Object类...............................................................................................................................4.2 String类................................................................................................................................4.3 StringUtils类 ........................................................................................................................4.4 StringBuilder类....................................................................................................................4.5正则表达式...........................................................................................................................4.6 Date类..................................................................................................................................4.7 Calendar类 ...........................................................................................................................4.8 SimpleDateFormat类 ...........................................................................................................4.9 DateFormat类.......................................................................................................................4.10包装类.................................................................................................................................4.11 BigDecimal类 ....................................................................................................................4.12 BigInteger类.......................................................................................................................4.13 Collection集合框架 ...........................................................................................................4.14 List集合的实现类ArrayList和LinkedList ......................................................................4.15 Iterator迭代器....................................................................................................................4.16泛型.....................................................................................................................................4.17增强型for循环..................................................................................................................4.18 List高级-数据结构:Queue队列 ..................................................................................4.19 List高级-数据结构:Deque栈 ......................................................................................4.20 Set集合的实现类HashSet ................................................................................................4.21 Map集合的实现类HashMap ............................................................................................4.22单例模式和模版方法模式.................................................................................................五、Java SE核心II ........................................................................................................................5.1 Java异常处理机制...............................................................................................................5.2 File文件类 ...........................................................................................................................5.3 RandomAccessFile类...........................................................................................................5.4基本流:FIS和FOS ............................................................................................................5.5缓冲字节高级流:BIS和BOS ...........................................................................................5.6基本数据类型高级流:DIS和DOS ..................................................................................5.7字符高级流:ISR和OSW ..................................................................................................5.8缓冲字符高级流:BR和BW .............................................................................................5.9文件字符高级流:FR和FW ..............................................................................................5.10 PrintWriter ...........................................................................................................................5.11对象序列化.........................................................................................................................5.12 Thread线程类及多线程 ....................................................................................................5.13 Socket网络编程.................................................................................................................5.15双缓冲队列.........................................................................................................................Java技术基础1.1编程语言机器语言:0 1 在硬件直接执行汇编语言:助记符高级语言:(Java运行比C/C++慢)1)面向过程的高级语言:程序设计的基本单位为函数,如:C/C++语言。

JAVA笔记大全(非常难得)

JAVA笔记大全(非常难得)

JDBCjava -version查看JAVA版本JDBC一套允许Java同一个SQL数据库对话的程序设计接口.JDBC是执行SQL语句的API,其本身是一个产品的商标名.它由一组用Java语言编写的类与接口组成。

JDBC已成为一种供工具/数据库开发者使用的标准API,用户可以用纯Java API来编写数据库应用程序。

使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。

JDBC是用于将Java程序和关系数据库连接起来的程序接口,通过这个接口,使用户可以将访问请求语句以SQL语句的形式编写出来,然后将该程序接口传送到数据库,结果再由同一个接口返回JDBC力求达到SQL级API,这就意味着JDBC允许用户建立SQL语句,并将其嵌入到Java API 调用中,即为Java定义一个“调用级”(Call-level)的SQL接口JDBC API被描述成一组抽象的Java接口,使得应用程序可以对某个数据库打开连接,执行SQL 语句,并且处理结果。

JDBC是一组由驱动程序实现的Java接口。

驱动程序负责从标准JDBC调用向支持的数据库所要的具体调用转变每个JDBC应用程序(或小程序)至少要有一个JDBC驱动程序,每个驱动程序是针对一种DBMS 的。

但驱动程序不必直接连到数据库JDBC接口分为两个层次,一个是面向程序开发人员的应程序层(JDBC API),开发人员用API 通过SQL调用数据库和取得结果。

另外一个是底层的驱动程序层(JDBC Driver API),处理与具体驱动程序版本的所有通信java.sql包括了所有的JDBC APIjava.sql.DriverManager 负责处理驱动程序的调入并且对产生新的数据库连接提供支持java.sql.Connection 代表对特定数据库的连接java.sql.Statement 代表一个特定的容器,用来对一个特定的数据库执行SQL语句java.sql.ResultSet 控制对一个特定语句行数据的存取其中java.sql.Statement又有两个子类型:java.sql.PreparedStatement 用于执行预编译的SQL语句java.sql.CallableStatement 用于执行对一个数据库内嵌过程的调用JDBC提供了连接数据库的几种方法:直接通信、通过JDBC驱动程序通信、通过ODBC通信(JDBC通过JDBC-ODBC桥与ODBC数据源相连)基本的JDBC数据库访问流程:1.建立数据源:这里所建的数据源是指建立ODBC数据源。

java笔记

java笔记

Java学习笔记(讲师:韩顺平)整理:reamd1、先建一个工程——>包——>类2、java中类名首字母大写方法名的首字母是小写的①匈牙利法:myCode②下划线法:my_code3.先设计类 然后根据类创建对象实例化一个开辟一个内存设计类的过程class 类名{};设计类的属性时,尽量带着private的控制访问符号,如需要访问类私有的属性,可通过构造一个公共的方法去给予外界一定的访问权。

(1)构造方法,在建立一个新的对象时会自动调用构造方法初始化成员属性。

(注:若类的形式为:class Clerk{int age;};则构造函数的形式为public Clerk(int age){ this.age=age;};)(2)类方法:public static int total() {方法语句;}4. this指向一个对象,而不是类this只能在类定义中用5.(1)static int a;a称为静态变量或类变量,因此其可以被任何一个变量访问;因此它不是任何一个实例所共有的6.java面向对象语言的三大特征:封装、继承、多态。

(可附加:抽象)(1)封装:访问控制符Public 对外公开Protected 对子类和同一个包公开默认向同一个包公开private 只有类本身才可以访问(2)能够继承的访问控制为:Public protected 默认(3)方法的重载方法的名称相同、方法的参数不同。

方法的覆盖:方法的名称相同就把父类覆盖了。

不能把父类方法的访问权限缩小。

(4)多态大类下创建实例,能够自动识别。

7.抽象类,接口,final(1)抽象类:用abstract关键字来修饰一个类,抽象方法不能有主体。

(2)接口:interface 接口名class 类名implements 接口名Implement实现原则:当一个接口实现了,就要求实现接口中的所有方法。

原则:接口不能被实例化;接口中的所有方法不能有主体,(3)final 修饰不希望被他人修改的父类的属性和方法。

java学习笔记

java学习笔记

分支语句1.if(布尔类型表达式){语句1;语句2;}else if(布尔类型表达式){语句3;语句4;}else if(布尔类型表达式){语句5;语句6;}Else{语句7;}2.switch(表达式){Case常量1:语句1;break;Case常量2:语句2;break;。

Case常量n:语句n;break;[default:默认语句;break;]}循环语句1.for循环For(int i = 0;i < 10;i++){System.out.println(i);}函数的复写1.使用super调用父类的成员函数2.复写条件:A:在具有父子关系的两个类当中B:父类和子类各有一个函数,这两个函数的定义(返回值类型,函数名和参数列表)完全相同对象的转型1.向上转型---将子类的对象赋值给父类的引用Student 是= new Student();Person p = s;一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型一个引用调用的是哪一个方法,取决于这个引用所指向的对象2.向下转型---将父类的对象赋值给之类的引用Student s1 = new Student();Person p = s1;Student s2 = (Student)p;抽象类和抽象函数1.抽象函数就是没有函数体的函数2.抽象类使用abstract来定义3.抽象类不能生成函数,但是可以拥有构造函数4.抽象类不能生成对象5.如果一个类中包含抽象函数,那么这个类必须被声明为抽象类6.如果一个类中没有抽象函数,那么这个类也可以被声明为抽象类包和访问权限1.将类放置到一个包当中,需要使用package “包名”2.编译时需要使用-d 参数,该参数的作用是依照包名生成相应的文件夹(例:javac -d . Test.java)3.一个类的全名应该是“包名”+ “.”+ “类名”4.包名的命名规范:A:所有字母都小写B:一般情况下,是你的域名段落倒过来写5.在不同的包中,一个类想访问另外一个类的成员函数,被调用的类的成员变量和函数要是public权限,需要写包名.类名(或者使用导入:import 包名)6.public权限可以修饰类,成员变量和成员函数,没有任何限制,同一个包当中或者不同包中的类都可以自由访问7.private可以修饰成员变量和成员函数,只能在本类当中使用8.default(不写权限修饰符),可以修饰类,成员变量和成员函数,在同一个包中可以自由访问9.如果子类和父类不在同一个包当中,则子类无法继承到父类当中的default权限的成员变量和成员函数10.protected权限首先拥有和default一样的功能,但是该权限只能修饰成员变量和成员函数11.权限public>protected>default>private。

java基础笔记

java基础笔记

序言J2SE基础1.九种基本数据类型的大小,以及他们的封装类。

2.Switch能否用string做参数?3.equals与==的区别。

4. Object有哪些公用方法?5. Java的四种引用,强弱软虚,用到的场景。

6. Hashcode的作用。

7. ArrayList、LinkedList、Vector的区别。

8. String、StringBuffer与StringBuilder的区别。

9. Map、Set、List、Queue、Stack的特点与用法。

10. HashMap和HashTable的区别。

11. HashMap和ConcurrentHashMap的区别,HashMap的底层源码。

12. TreeMap、HashMap、LindedHashMap的区别。

13. Collection包结构,与Collections的区别。

14. try catch finally,try里有return,finally还执行么?15. Excption与Error包结构。

OOM你遇到过哪些情况,SOF你遇到过哪些情况。

16. Java面向对象的三个特征与含义。

17. Override和Overload的含义去区别。

18. Interface与abstract类的区别。

19. Static class 与non static class的区别。

20. java多态的实现原理。

21. 实现多线程的两种方法:Thread与Runable。

22. 线程同步的方法:sychronized、lock、reentrantLock等。

23. 锁的等级:方法锁、对象锁、类锁。

24. 写出生产者消费者模式。

25. ThreadLocal的设计理念与作用。

26. ThreadPool用法与优势。

27. Concurrent包里的其他东西:ArrayBlockingQueue、CountDownLatch等等。

28. wait()和sleep()的区别。

JAVA学习经典重点笔记(保证终生受用)word版本

JAVA学习经典重点笔记(保证终生受用)word版本

(1)一个字符串就是一个String的匿名对象;String的内容一旦声明则无法改变。

(2)This()必须放在构造方法的首行。

在使用this调用构造方法的时候至少有一个构造方法是没有使用this()调用的,而次构造方法将作为调用的出口,一般这个出口都会使用无参构造函数。

This有一个最重要的概念——表示当前对象。

当前正在调用类中方法的对象,成为当前对象。

所以this.属性就表示当前对象的属性。

(3)Static的方法只能调用static的属性和方法,不能调用非static的属性或方法。

因为静态属性和方法可以在没有实例化对象的时候调用,而类中的普通方法和普通属性,肯定只有在对象实例化之后才有可能调用。

(4)Main(String args[] )用于接收参数,就是java 类名参数1 参数2 参数3★构造方法私有化后,则就成单例问题了,单例声明:private static 类名对象名=new 类名(5)直接在类中定义的代码块称为构造块。

构造块会重复调用多次,构造块会优先于构造方法执行。

使用static关键词声明的代码块称为静态块,静态块优先于主方法执行,静态块用于对静态属性初始化,优先于构造块执行,而且只执行一次。

(6)内部类的唯一优点:在于可以方便的访问外部类中的私有成员。

如果要在外部直接使用内部类的实例化对象:外部类.内部类内部类对象=外部类实例.new 内部类实例()一个内部类如果使用static关键字声明的话,则此内部类就将成为外部类,可以直接通过外部类.内部类的形式访问。

如:Outer.Inner in=new Outer.Inner();(7)在方法中定义的内部类,可以直接访问外部类中的各个成员,但如果要访问方法中的参数,则在参数上要使用final关键字声明。

(8)链表:对于单向链表,主要是传递的引用数据类型,开发的意义不大,面试的意义很大。

主要是应用内部类。

(李兴华JAVA培训14课)(9)子类一定会调用到父类的构造方法,默认是有一个super()调用父类的无参构造方法。

java基础学习重点笔记

java基础学习重点笔记

1、首先安装java JDK_82、安装eclipse win732位,安装的时候新建一个workspace,可以选择D盘(自己选路径就行)3、workspace-java project-建包-类4、JAVAHOME不是必须配置的!配置的原因只有1个,便于不同版本之间的切换!打个比方:你装了3个TOMCAT有 5.0 5.5 6.0的这个时候你可以利用JAVAHOME对这3个TOMCAT分别访问安装部署!5、JDK环境变量配置,建一个JAVA_HOME系统变量:C:\ProgramFiles\Java\jdk1.8.0_51,在path系统变量里面引用%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\ Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%JAVA_ HOME%\bin6、检查是否配置正确,打开运行面板(快捷键win R),打开后在里面输入cmd进入命令窗口,输入java,出现输入javac,java –version能出现版本信息即配置正确7、进入上一层目录 CD ../,开始->运行->CMD;进入某个磁盘,直接盘符代号:如 D:,不用CD 命令切换。

退出目录也要用cd, cd..表示退回到上一级子目录,cd\ 则表示一下退到根目录。

让学生在F盘或D盘以自己姓名命名创建文件夹,我的在F盘,JavaEx8、名词提炼法人开门,面向对象,三个特征:封装、继承、多态;开发就是找对象用,没有对象就创建对象---找对象-创建对象-使用对象-维护对象之间的关系类和对象的关系,定义类就是定义属性和行为,属性和行为共同成为类中的成员变量9、对象放到堆里面,类的属性放在栈里面,具有初始化值,注意下这两者之间的关系10、系统环境变量,classpath环境变量11、Java程序通过Java虚拟机可以达到跨平台特性,但Java虚拟机并不是跨平台的。

Java学习笔记

Java学习笔记

2011年11月22日一、dos 命令1. F:+回车=进入F盘2.cd+\=进入当前所在分区的根目录。

3.cd+..=进入上一级目录4.dir=查看当前目录下的文件信息5.按下Tab键=快速选择当前目录下的内容6.del+.=删除当前目录下的所有文件二、环境变量1.path变量:在dos界面下打开程序时,机器自动搜索程序的路径集合。

2.classpath变量:在java运行时,搜索class文件所在路径的集合3. set path=.;%path% 在命令行运行只在当前界面起作用,不会保存,其中%path%表示path变量以前的值。

4. javac -d 文件路径java文件:将java文件编译后存到d后指定的路径下。

三、java 大小写敏感注意String System2011年11月23日一、原码,反码,补码①原码:带正、负号的二进制数,最高位为符合位,1为负,0为正。

②反码:正数的反码与原码相同,负数的反码是符号位不变,其他位取反。

③补码:正数的补码与原码相同,负数的补码是在其反码末位加1二、位运算位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算。

位运算符可以分为逻辑运算符(包括~、&、|和^)及移位运算符(包括>>、<<和>>>)。

①按位非(NOT) "~" 对其运算数的每一位取反②按位与(AND) "&" 两个都为1,则结果为1③按位或(OR) "|" 任何一个运算数为1,则结果为1④按位异或(XOR) "^" 只有两个比较的位不同时结果为1⑤左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。

⑥“有符号”右移位运算符(>>)则将运算符左边的运算对象向右移动运算符右侧指定的位数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

This 㶗⹩ᒂ‫ݼ‬ᄨ䆐ȡ
Public void printNum(){ Int number=40喛 System.out.println(this.number);
} ₓᬥគ࢟⮳᭞ჍҺइ䛾喌㔻䲍ᅯ䘗इ䛾喌ࢢ჉͸౗ㆪ͜㔻䲍᫨∄͜⮳इ䛾ȡ
This.number 㶗⹩ჍҺइ䛾ȡ 䄰䄲⩗ this.number 䗒ͷ䄰ࢢͩᒂ‫(ݼ‬this)ᄨ䆐⮳ number ᫨∄ȡ
‫ڢ‬㈪䓿テさ喚instanceof a instanceof Animal;(䔈͙ᐾၿ⮳㐂᳋᭞̯͙ጲᅃ㶗䓭ᐾ) D ͩᄨ䆐इ䛾喌Animal ᭞ㆪ़ȡ ̹䲑䄜औ᭞‫ݓ‬჉ D ᭞ॕञД䉣 Animal ᴶキȡັ᳋ञД䉣݈䔃఍ true喌ॕ݈䔃఍ falseȡ
౗̹䲑⮳䷇Ⱍ͜喚 a instanceof Animal 䔃఍ True喌 a instanceof Dog Ύ䔃఍ True喌
䲑ीᄨ䆐᫨∄⮳䛼䒬喈overloading喉঻㺵Ⰵ喈overriding喉ȡ ౗᰸ϊ JAVA Εㅼ͜ᄵ overriding 土ͩ䛼䒬喌overloading 土ͩ䓶䒬ȡ
Overloading ౗̯͙ㆪ͜ञД჉͸้͙ऻ़᫨∄喌ळ͙᫨∄⮳ࣱ᪟㶗̯჉̼ऻȡѵԝ亟䃼 ञ㘬Ⱗऻ喌䔃఍իΎञ㘬Ⱗऻȡ
౗彡Ꮎ⮳㑅䄀䓶彡͜ᵨᢝइ䛾ㆪ಺ᲔឭⰧᏃ⮳᫨∄ȡఏₓΎ᰸ϩ䃓ͩ overloading ᭞㑅 䄀ᬥ⮳้ᔰ喌ДऽᝀЛ䔇щ႕‫ݟ‬䓿㵻ᬥ้ᔰȡ
ㆪ᫨∄͜⮳̯ㆪ➨₹᫨∄喚Ჳ䕏᫨∄ȡ Ჳ䕏᫨∄᭞ᒂ⩗ㆪ⩎᜿ᄨ䆐ᬥ喌㈪㐎౗⩎᜿ᄨ䆐⮳䓶彡͜‫⮳⩗ݘ‬᫨∄ȡ ∗ᘾ喚Ჳ䕏᫨∄౗⩎᜿ᄨ䆐⮳ᬥՈщ㷚䄲⩗喌ѵᎥ̼᭞Ჳ䕏᫨∄⩎᜿εᄨ䆐ȡ Ჳ䕏᫨∄⇐᰸䔃఍իȡᵫᐾͩ喚public ᫨∄़ȡ Ჳ䕏᫨∄⮳᫨∄़̽ㆪ़Ⱗऻȡ Ჳ䕏᫨∄᭞౗ᄨ䆐⩎᜿⮳䓶彡͜㜙ߗ䄲⩗喌̼ञ㘬‫⩗ݘ‬ᠶГ࣪䄲⩗ȡ ౗̯͙ᄨ䆐⮳⩎᜿গᱎ͜Ჳ䕏᫨∄ङ⩗̯⁐喌̯ᬕ䔈͙ᄨ䆐⩎᜿喌䗒ͷ䔈͙Ჳ䕏᫨∄๠᩷ȡ
᫨∄⮳㺵Ⰵ喈overriding喉 ᫨∄⮳䛼䒬Ꭵ̼̯჉᭞౗̯͙ㆪ͜喚ၿㆪञДϽ❥ㆪ㐖ឮ̯͙᫨∄喌ΎञД჉͸̯͙ऻ़ᐱ ࣱ⮳᫨∄喌Ύ土ͩ overloadingȡ ᒂၿㆪϽ❥ㆪ㐖ឮ̯͙ᬏࣱ᫨∄喌㔻ࣷ჉͸ε̯͙ऻᵦ⮳ᬏࣱ᫨∄喌݈ၿㆪ᫟‫⮳ۈ‬᫨∄㺵Ⰵ ❥ㆪ⮳᫨∄喌土ͩ㺵Ⰵȡ喈∗ᘾ䔃఍իㆪ಺Ύᓴ䶪Ⱗऻ喌ॕ݈㑅䄀‫ܩ‬䩈ȡ喉 ັ᳋᫨∄̼ऻ喌݈᜿䛼䒬ȡ
㺰‫ڪ‬᜿㞞ຬ⮳㑅彡Ώᘞ喚ᅠ᭞㺰ߏ̹吇䃓⮳❥ㆪᬏࣱ⮳Ჳ䕏᫨∄ȡ ᕌ㔲喚ञ᭞ັ᳋ᝀЛ⇐᰸჉͸ᬏࣱ⮳Ჳ䕏᫨∄喌㔻౗彡Ꮎ͜Ჳ䕏ε᰸ࣱ⮳Ჳ䕏᫨∄喌䗒ͷັ ᳋᫨∄͜⇐᰸ࣱ᪟喌䗒ͷ㈪㐎䔇щ䄲⩗᰸ࣱ⮳Ჳ䕏᫨∄ͷ喟Ꮓ䄔̼щȡ
้ᔰ喚้ᔰᠶ⮳᭞㑅䄀ᬥㆪ಺इࡅ喌㔻䓿㵻ᬥㆪ಺̼इȡ ้ᔰ͓ܵ⻼喚 Ř 㑅䄀ᬥ้ᔰ喚㑅䄀ᬥߗᔰ䛼䒬喛 ř 䓿㵻ᬥ้ᔰ喚ᠶ̯͙ᄨ䆐ञД‫ڦ‬᰸้͙ㆪ಺ȡ
ͩϯͷ㺰Ү⩗䲑ीᄨ䆐喚 仅‫ٷ‬喌䲑ीᄨ䆐さषϩㆪⰺᒴκ➘⮳̯㝛㻳ᒺȡ ᄨ䆐⮳᫨∄⮳Ⴭ⣟㏵㞱᭞ᅾ㩬⮳喌ङ᰸ᄨ䆐᫨∄⮳Ⴭ⣟㔴ε㼒㏵㞱ȡ ᫨∄⮳჉͸䲍፧䛼㺰ȡ᫨∄᰸ࣱ᪟喌Ύञ㘬᰸䔃఍իȡ
∗ᘾࡩܵ喚ᄨ䆐喈ᱛ䏚喉Ƞᄨ䆐⮳Ⴭ⣟㔴Ƞᄨ䆐⮳䄲⩗㔴ȡ ܵᲿᄨ䆐ͪ㺰Ͻ᫨∄ᐯ໺ȡ ᝀЛ䕉䓶ㆪᲔⰺᒴᄨ䆐喌ㆪ᭞ᄨ䆐⮳៬䆐ȡ
ᄰ㷴喚Үᄨ䆐⮳ᆍᕖᅬञ㘬⻰᰸喌ᄨ䆐⮳᫨∄ᅬञ㘬⮳‫ڛ‬ᐯȡ⩗ private 㶗⹩ₓ᜿ইᆍᕖͩ
䖒‫ ݙ‬java ᄺдヨ䆄
3
䄔ㆪ⮳⻰᰸ᆍᕖȡ
Public 㶗⹩䄔ᆍᕖ喈᫨∄喉‫ڛ‬ᐯ喛 Private 㶗⹩䄔ᆍᕖ喈᫨∄喉ͩङ᰸ᱛㆪ‫ڴ‬䘗ञД䃮䬝喈ㆪ‫ڴ‬䘗ञ㻰喉ȡ 喈ᘢ⩗ private 䔇㺰⩗ set ঻ get ᫨∄ӊ‫ڥ‬Ѕ᫨∄䄲⩗喌䔈ᵦञДԌ䃰ᄨᆍᕖ⮳䃮䬝᫨ᐾ㐎 ̯喌Ꭵ̓Ӯν㐣៓䃮䬝ᱲ䭿Дࣹᆍᕖ᪟ᢝष∄ᕖ喉 ັ᳋⇐᰸➨₹ᗴۤ喌ᆍᕖ̯჉⻰᰸喌᫨∄䄔‫ڛ‬ᐯ⮳‫ڛ‬ᐯȡ ັ᳋̼ᠶᬽ䄰䄲⩗᫨∄喌݈吇䃓ͩ thisȡ ࡩܵჍҺइ䛾঻ᅯ䘗इ䛾ᬥ̯჉㺰‫ ۈ‬thisȡ
ᄨν᫨∄⮳ԝ亟䃼喌ၿㆪ᫨∄㺰℃❥ㆪ⮳᫨∄㠲ణᰣߏ⮳წ∊ȡ ❥ㆪͩ public喌䗒ͷၿㆪͩ private ݈‫ܩ‬⣟䩈䄞ȡ ͺᝯДᲳ䕏᫨∄‫ٷ‬䓿㵻❥ㆪ‫ڼ‬䓿㵻ၿㆪ᭞ఏͩᲳ䕏᫨∄᭞ᬏ∄㺵Ⰵ⮳ȡ Д̺㠲ణӌ⁐⩠͔‫ݟ‬წ喚 private 喚ᱛㆪ䃮䬝喛 default 喚㶗⹩吇䃓喌̼ϴᱛㆪ䃮䬝喌㔻̓᭞ऻ࠴ञ㻰ȡ Protected喚ऻ࠴ञ㻰̼ऻ࠴⮳ၿㆪञ㻰 Public 喚㶗⹩ᝯ᰸⮳౟᫨౶ञ㻰ȡ
℃䒲䲑ी䓶彡⮳ᕌᘢ঻䲑ीᄨ䆐⮳ᕌᘢ喚 䲑ी䓶彡⮳ᕌᘢ喚⩠䓶彡Ƞₔ俓Ƞ‫ܬ‬᪟㏳᜿喌Д䓶彡ͩᵧᓲ喛 䲑ीᄨ䆐⮳ᕌᘢ喚Дᄨ䆐ͩ͜ᓲ喌‫ٷ‬ᐯऀㆪ喌ᓆ‫ݟ‬ᄨ䆐喌䕉䓶ᄨ䆐ͺ䬣Ⱗρ䕉ԐჍ⣟ߎ㘬ȡ 䲑ी䓶彡᭞‫ٷ‬᰸テ∄喌ऽ᰸᪟ᢝ㐂Ჳȡ 䲑ीᄨ䆐᭞‫ٷ‬᰸᪟ᢝ㐂Ჳ喌♥ऽ‫ڼ‬᰸テ∄ȡ
౗⩗䲑ीᄨ䆐ᕌᘢᐯऀ⮳䓶彡͜喌ञД฼⩗ᄨ䆐ᅠ䔊㵻฼⩗喌ັᬏ∄䔊㵻฼⩗݈ᐯऀ᫟⮳ᄨ 䆐ȡ ᐯऀ䓶彡᭞⩗ᄨ͙クࢄ⮳ᄨ䆐⮳้͙クࢄ⮳᫨∄喌ᲔჍ⣟฼ᱱ⮳ߎ㘬ȡ Ͻ䄜∄̹Ეⰺ喌̯͙ㆪ᭞̯͙᫟⮳᪟ᢝㆪ಺ȡ ౗䲑ीᄨ䆐㑅彡͜喌䮓εクࢄ᪟ᢝㆪ಺喌ᅠ᭞ᄨ䆐ㆪ಺ȡ ჉͸ㆪ⮳ᵫᐾ喚 class Student{
Вⴰ }
䖒‫ ݙ‬java ᄺдヨ䆄
1
∗ᘾㆪ़͜ࢄ䃼⮳仅ႆ⃼๖‫ۈ‬ȡ ჍҺइ䛾喚჉͸౗ㆪ͜ѵ౗Ъ҄᫨∄ͺๅȡ喈New ‫ܩ‬Ე⮳౶᰸‫݌‬ի喉 ᅯ䘗इ䛾喚჉͸౗᫨∄ͺ͜⮳इ䛾ȡ ᅯ䘗इ䛾㺰‫ٷ‬䉺ի喌‫ڼ‬䔊㵻䓿テ喌㔻ჍҺइ䛾౶ጡ㏾䉺‫݌‬իȡ䔈᭞ᅯ䘗इ䛾঻ჍҺइ䛾⮳̯ ๖ࡩ‫ݚ‬ȡ ჍҺइ䛾⮳ᄨ䆐䉺իͩ nullȡ ᅯ䘗इ䛾ٰ̼䃧㠲ణ‫ڴ‬჉͸͓͙ऻ़इ䛾ȡჍҺइ䛾⮳ҋ⩗എ౗ᱛㆪ͜Ⴛ‫ڗ‬᰸᩷喌ᒂ㷚‫ڥ‬Ѕ ⮳ㆪ䄲⩗⮳ᬥՈΎञ㘬᰸᩷ȡ ჍҺइ䛾঻ᅯ䘗इ䛾ٰ䃧ব़ۡ革ȡ
Overloading ᫨∄᭞Ͻѽी倇䒛ȡ Byte—short—float—int—long—doubleȡ
౗Ჳ䕏᫨∄͜喌this 㶗⹩ᱛㆪ⮳‫ڥ‬ЅᲳ䕏᫨∄喚 student(){}; student(string n){
this();//㶗⹩䄲⩗ student() } ັ᳋䄲⩗ student(int a)݈ͩ this(int a)ȡ ➨‫∗ݚ‬ᘾ喚⩗ this 䄲⩗‫ڥ‬ЅᲳ䕏᫨∄ᬥ喌this ᓴ䶪ͩせ̯Ა䄜औ喌♥ऽ᝼᭞‫ڥ‬Ѕ䄜औȡ
ᒂᲳ䕏̯͙ᄨ䆐⮳ᬥՈ喌㈪㐎‫ٷ‬Ჳ䕏❥ㆪᄨ䆐喌‫ڼ‬Ჳ䕏ၿㆪᄨ䆐ȡ Ჳ䕏̯͙ᄨ䆐⮳䶩Ꮎ喚喈∗ᘾ喚Ჳ䕏❥ㆪᄨ䆐⮳ᬥՈΎ᭞䔈܏ₔ喉 Ř 䕁ᒁ౟Ჳ䕏❥ㆪᄨ䆐喛 ř 䶩Ꮎ౟䄲⩗ᱛㆪ᜿ইᆍᕖ䉺‫݌‬ի䄜औ喛 Ś ᱛㆪ⮳Ჳ䕏᫨∄ȡ
Super()㶗⹩䄲⩗❥ㆪ⮳Ჳ䕏᫨∄ȡ
䖒‫ ݙ‬java ᄺдヨ䆄
4
Super()Ύ঻ this ̯ᵦᓴ䶪ᩭ౗せ̯㵻ȡ This()⩗ν䄲⩗ᱛㆪ⮳Ჳ䕏᫨∄ȡ ັ᳋⇐᰸჉͸Ჳ䕏᫨∄喌䗒ͷᅠщ䄲⩗❥ㆪ⮳ᬏࣱᲳ䕏᫨∄喌ࢢ super()ȡ
ͩϯͷщႇ౗ overloading ឯᱞ঑喟ҋͩᏃᄨ᫨∄⮳㏵㞱ȡ ‫⩗ݘ‬ㆪ಺⮳ጝᐱᲔᒠৼᄨ᫨∄⮳䄲⩗ȡ ल喈喉ञДܵͩल㖸喌ल㤋喌ल㢞喌౗̯͙ㆪ͜ञД჉͸้͙ल᫨∄ȡ
Ჳ䕏᫨∄ΎञДჍ⣟ overloadingȡҺ喚 public void teach(){}; public void teach(int a){}; public void teach(String a){}̸ͩ⻼̼ऻ⮳᫨∄ȡ
ञДᲳ䕏้͙Ჳ䕏᫨∄喌ѵ้͙Ჳ䕏᫨∄⮳ࣱ᪟㶗̯჉̼ऻ喌ࣱ᪟䶩Ꮎ̼ऻࢢᆍν̼ऻ⮳Ჳ 䕏᫨∄喚 public student(string name,int a){ } public student(int a,string name){ } ͓͙̼ͩऻ⮳Ჳ䕏᫨∄ȡ
䖒‫ ݙ‬java ᄺдヨ䆄
2
ັ᳋ᝀЛ᱙㐈㈪㐎᣿ӊ̯͙Ჳ䕏᫨∄喌䗒ͷ㈪㐎щ㜙ߗ᣿ӊ̯͙ͩ阜⮳Ჳ䕏᫨∄ȡ ㏲Ώ喚‫͙̯ۈ‬ㆪ喌჉͸̯͙ᄨ䆐喌჉͸͓͙Ჳ䕏᫨∄喚̯͙᰸ࣱ喌̯͙ᬏࣱȡ 喈㑅‫彡͙̯ۈ‬Ꮎ侻䃰ᄨ䆐⮳я䕁⮳իͩ౟౯喉 ∗ᘾ̺䲑䔈⻼ᒑᐾ喚 static void changename(student stu){stu.setName “LUCY”} ∗ᘾ⩎᜿᫟⮳ᄨ䆐̽ᬖᄨ䆐ᠶीᬏ‫ڢ‬喌⩎᜿᫟ᄨ䆐⩎ব⊷ϐ̽ᬖᄨ䆐ᬏ‫ڢ‬ȡ
11.29
㐖ឮ喚 ❥ㆪ喈SuperClass喉঻ၿㆪ喈SonClass喉ȡ ❥ㆪ⮳䲍⻰᰸ࡅᆍᕖ঻᫨∄ञД吇䃓㐖ឮ‫ݟ‬ၿㆪȡ Class Son extends Father{ } 㔻ັ᳋❥ㆪ͜⮳⻰᰸᫨∄㷚ၿㆪ䄲⩗⮳䄌喌݈㑅䄀។䩈ȡ
❥ㆪ⮳Ჳ䕏᫨∄ၿㆪ̼ञД㐖ឮ喌ᰣ̼ႇ౗㺵Ⰵ⮳䬝䷇ȡ喈䲍Ჳ䕏᫨∄ञД喉 ັ᳋ၿㆪ䃮䬝❥ㆪ⮳Ჳ䕏᫨∄喌݈౗㑅䄀⮳ᬥՈ᣿⹩䃮䬝̼‫ݟ‬䄔᫨∄ȡ JAVA ٰ̼͜䃧้㐖ឮ喌̯͙ㆪ᰸̓ङ᰸̯͙❥ㆪ喈ࢄ㐖ឮ喉ȡ JAVA ⮳᪟ᢝ㐂Ჳͩᵀ಺㐂Ჳ喌㔻䲍㒀⟥ȡ喈JAVA 䕉䓶ᣔऒ঻‫ڴ‬䘗ㆪჍ⣟้㐖ឮ喉
ᄨ䆐᭞ბ㻱⮳喌ϩᄨᄨ䆐⮳䃓䃵᭞ͪ㻱⮳ȡ Һ喚 Animal a=new Dog()喛ᴔⰺᵫᐾ़土喛 Dog d=(Dog)aȡฟᬽ❥ㆪᲔᑄ⩗ၿㆪȡ 喈ᕌ㔲̹䲑⮳ᵫᐾ喉
䓿㵻ᬥ้ᔰ⮳̸݈࣎喚喈Ꮓ⩗ᬥͩ㺵Ⰵ喉 Ƞ ᄨ䆐̼इ喛喈ᩨइ⮳᭞ͪ㻱䃓䃵喉 Ƞ ᄨνᄨ䆐⮳䄲⩗ङ㘬䭿ν㑅䄀ᬥㆪ಺⮳᫨∄喌ັ䄲⩗䓿㵻ᬥㆪ಺᫨∄។䩈ȡ ౗̹䲑⮳Һၿ͜喚Animal a=new Dog()喛ᄨ䆐 D ⮳㑅䄀ᬥㆪ಺ͩ Animal喌䓿㵻ᬥㆪ಺ͩ dogȡ ∗ᘾ喚㑅䄀ᬥㆪ಺̯჉㺰ͩ䓿㵻ᬥㆪ಺⮳❥ㆪ喈ᝅ㔴ऻㆪ಺喉ȡ ᄨν䄜औ喚Dog d=(Dog)aȡᄵ G ᑩ‫ݥ‬ฟᬽͩ D ㆪ಺喌ₓᬥ G ͩ Dog()喌ₓᬥ G ᅠञД䄲⩗䓿 㵻ᬥㆪ಺ȡ∗ᘾ喚D ঻ G ᠶीऻ̯ᄨ䆐ȡ Ƞ ౗彡Ꮎ⮳䓿㵻ᬥ喌ߗᔰㆪ಺‫ݓ‬჉ȡ䓿㵻ᬥ䄲⩗䓿㵻ᬥㆪ಺喌ࢢႲ䄲⩗㺵Ⰵऽ⮳᫨∄ȡ
JAVA ⮳䲑ीᄨ䆐㑅彡--------䄭റぃ䃟
䲑ीᄨ䆐ͪ㺰䦷ᄨ䲑ी䓶彡ȡ 䲑ी䓶彡⮳ഩᱛࢄ‫ٲ‬᭞‫ܬ‬᪟ȡ
ϯͷ᭞ᄨ䆐喚EVERYTHING IS OBJECT喈̶➘⮵ᄨ䆐喉
ᝯ᰸⮳κ➘䘬᰸͓͙᫨䲑喚 ᰸ϯͷ喈ᆍᕖ喉喚⩗Ე᣾䔟ᄨ䆐ȡ 㘬๎։ϯͷ喈᫨∄喉喚ॹ䃸ๅ⩻ᄨ䆐᰸䗒ϊߎ㘬ȡ ऽ㔴Д‫ݼ‬㔴ͩഩⵯȡ ๖⮳ᄨ䆐⮳ᆍᕖΎञД᭞̯͙ᄨ䆐ȡ
‫⁐ڥ‬喌䛶⩗䲑ीᄨ䆐᫨∄ञДҮ㈪㐎ळ䘗ܵळध‫ڥ‬㕻Ƞळᅬᝯ㘬ȡ ᄨ䆐ͺ䬣⮳㕕षᕖ̯჉㺰ѽ喈℃ັ̼ऻ⶛Ⰷ঻̼ऻͪᲮͺ䬣⮳‫ڢ‬㈪喉ȡ䔈ᵦ᝼㘬Ү⃾͙ᄨ䆐 ᱛ䏚։᜿ᰯຬ⮳ȡ
相关文档
最新文档