Java学习笔记(必看经典)_New - 共33页
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语言是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语言入门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-课堂笔记-第一章至第八章知识点梳理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

比较面向过程的思想和面向对象的思想: 面向过程的思想:由过程、步骤、函数组成,以过程为核心; 面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。 面向过程是先有算法,后有数据结构。 面向对象是先有数据结构,然后再有算法。
关系运算符: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是⾯向对象的语⾔,⼀个程序的基本单位就是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相对于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_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 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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喈̶➘⮵ᄨ䆐喉
ᝯ⮳κ➘䘬͓͙䲑喚 ϯͷ喈ᆍᕖ喉喚⩗Ე䔟ᄨ䆐ȡ 㘬๎։ϯͷ喈∄喉喚ॹ䃸ๅ⩻ᄨ䆐䗒ϊߎ㘬ȡ ऽ㔴Дݼ㔴ͩഩⵯȡ ๖⮳ᄨ䆐⮳ᆍᕖΎञД᭞̯͙ᄨ䆐ȡ
⁐ڥ喌䛶⩗䲑ीᄨ䆐∄ञДҮ㈪㐎ळ䘗ܵळधڥ㕻Ƞळᅬᝯ㘬ȡ ᄨ䆐ͺ䬣⮳㕕षᕖ̯㺰ѽ喈℃ັ̼ऻⰇ̼ऻͪᲮͺ䬣⮳ڢ㈪喉ȡ䔈ᵦ㘬Ү͙ᄨ䆐 ᱛ䏚։ᰯຬ⮳ȡ