java基础部分笔记(全)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

java基础部分笔记(全)java基础部分笔记(全)note(javaoo_01)====面向对象(ObjectOriented,简称OO)====1.什么是对象?在现实生活中,相当于是东西,指的是一个具体的实例,不管是看的见,看不见的,具体的,抽象的,都可以成为一个对象,即:万物皆对象2.什么是面向对象?一种编程规范,也是一种编程技术,是一个抽象的思维方式,指的是面向客观事物之间的关系,即对象与对象之间的关系.3.如何使用面向对象?根据客户提供的需求进行抽象出业务对象,然后对需求进行合理的分层,构建出相对独立的业务模块,然后设计业务逻辑,再利用面向对象的特点(封装,继承,多态)来实现具体的业务,最后通过整合,达到高内聚,低耦合的效果,从而满足客户的需求.5.面向对象中一些概念1)类(引用类型)-----人类,动物2)对象(东西,具体一个实例)--周启,麦兜3)变量(引用,代词)----某个人,某头猪4)行为动作(方法)5)封装:封装的目的就是为了程序的保密性,将核心的业务进行隐藏,不让别人轻易看到,然后提供一个对外操作的接口,可以让别人去使用]这个程序,比如计算机.6)多态:一种行为动作在宾语不同的情况下发生改变的情况.(同一种事物在不同情况下发生改变)比如:打人,打牌,打酱油.7)继承:子类继承父类属性及方法.8)成员属性:类的属性,如名字,性别6.构造器(构造方法)就是用来描述对象的创建过程.原理(参数)制碗工厂(类)-----------碗(对象)生产线(构造器)例:写个类,描述点.注意:1)构造方法的方法名跟类名一致.2)构造方法不能声明返回类型.3)构造方法可以有多个,之间的区别在于参数不一样.4)java会默认生成一个无参数的构造器供开发者使用,但如果开发者重新写了有参的构造器,这个默认的无参构造器会消失,那么,一般情况下,会在写有参构造器的时候,顺带写上无参构造器.7.实例化就是借助构造器来产生一个新对象(使用关键字new).8.this关键字this是当前对象的引用,指的是对象本身.this()代表调用本类的其他构造器,以达到简化代码的目的.并且,this()只能出现在方法的第一行.--方法语法:修饰符返回类型方法名(参数列表){}9.方法的重载方法名相同,参数不同,这是多态的一种体现.注意:方法重载与返回值无关,与参数有关练习:1.给Point类一些重载的方法:Math.sqrt()1)原点与点的距离(无参数)2)点与点的距离(参数:x,y)3)点与点的距离(参数:Point对象)2.写一个Cicye类,属性:圆心,半径,计算圆面积的方法,点是否在圆内的方法Math.PI3.写一个Person类,里面有如下属性:编号,姓名,性别,年龄,婚否,身份证号,地址,电话,伴侣姓名写一个方法,方法是一个结婚方法.需要进行合理判断4.面向对象的方式:ez开船去钓鱼岛钓鱼PersonShipIslandFishnamenamenamenameptypedriver(Ships)go(Islandi)fishing(Fishf)作业:1)张三,王五,李四打牌,模拟洗牌,发牌Card牌Stringnum;Stringtype;Card[]cards=newCard[54];2)写一个Rectangle类,属性:顶点,长,宽,判断点是否在矩形内java基础部分笔记(全)note(javaoo_02)1.值传递:基本类型的值传递,传递的是自己本身的值的复制.引用类型的值传递,传递的是自己的内存地址值的复制.2.继承(extends)用于表示概念上具体化延续的具体概念特征:1)子类继承父类的所有属性及方法.2)构造器不能继承3)子类构造器一定会调用父类的构造器.默认调用无参的构造器.如果需要调用父类有参构造器,使用super关键字来指定调用哪个父类构造器.super:指定父类用来调用父类的方法以及属性.特征:1)super的使用跟this基本一样.this:本类资源;super:父类资源2)super()与this()一定要写在代码的第一行.super()与this()不能同时使用.3.实例化过程详解:step1:首先检索子类及父类字节码文件有没有被加载,如果没有被加载,则使用懒加载进行加载(有且只加载一次),如果被加载了,则直接使用.step2:为类里面的属性,从父类递归到自身进行属性的内存的空间的划分,并且为所有的属性进行初始化(零式化).step3:进行属性的赋值.step4:从父类到子类递归调用默认构造器.作业:1、写一个Question.java的类,里面有题号id和题干text;2、写一个ChoiceQuestion.java的类,它是Question的子类,里面有选项options[]和打印的方法(print)和一个检查答案正确性的一个方法(check(String[]answer));3、写两个ChoiceQuestion的子类,分别是SingleChoice.java和MulChoice.java,这两个方法里面分别对check方法进行了重写,他们里面各有各自的answer这个属性;4、写一个PaperDemo.java的类,使用之前的类进行一个试卷类的书写,要求能够写入两个单选题跟两个多选题,并且能够使用控制台输入答案的形式来进行题目的打印和答案的判断4.方法的覆盖(重写):发生在有继承关系的子类里面,表示子类把父类的某一个方法进行重新定义.Father{say(){syso(1)}}SonextendsFather{say(intx){}say(){syso(2)}run(){}}main(){Fatherf=newSon();f.say(1);}作业:定义图形(Shape)及其子类:设计图形(Shape)类及其子类(Circle、Rectangle)1)Shap属性:Pointp代表图形位置2)Shape提供计算面积方法area,子类(Circle、Rectangle)覆盖父类area方法3)Shape提供检查是否包含指定坐标的方法contains,子类覆盖java基础部分笔记(全)note(javaoo_03)1.访问控制符概念:这种修饰符是用来控制它所修饰变量,方法,以及类的访问作用域类内包内子类任意public√√√√protected√√√default√√private√注意:1)一个java文件,只允许出现一个public修饰的类.2)实体类中修饰属性使用private,为了进行封装.对属性的访问,提供get,set方法.2.JavaBean规范(POJO)好处:代码容易阅读,减少犯错的可能.规范内容:1)必须要有包;2)类中必须有无参构造器;3)使用get,set方法进行属性的访问以及赋值.属性使用private修饰4)实现序列化.--对打游戏英雄Hero属性:姓名name生命值live进攻指数(1-10)attack防御指数(1-10)defence行为:进攻attacking参数:进攻指数进攻指数暴击:1-5:20%概率杀伤值*26-10:40%概率杀伤值*2返回:总的杀伤值防御defencing参数:防御指数防御成功:1-5:20%概率防御成功6-10:40%概率防御成功返回:是否防御成功游戏Game启动:start进行对打wolf(hero1,hero2)wolf(hero2,hero1)对打:wolf(进攻方,防御方)作业:描述汽车行驶过程,行驶过程中的状态报警.水箱类WaterBox发动机类Engine汽车类Car水量waterField水箱温度t发动机温度t行为:油量oil启动()行为:停止()行驶()报警(油量)cail报警(水箱)3.多态动态绑定引用类型的类型转换:向上转型:属于自动转换,从小类型往大类型进行转换向下转型:属于强制转换,从大类型往小类型进行转换AnimalDogextendsAnimalCatextendsAnimalAnimala=newDog();Dogd=(Dog)a;instanceof运算符结构:变量名instanceof类型名结果为true,意味着变量指向的对象为该类型.注意:1)引用类型转换只能是有继承关系的子类和父类,并且符合逻辑.2)如果是父类的引用指向子类对象,那么父类的引用不能调用子类特有的属性及方法.作业:USB接口开始连接使用中断开连接鼠标键盘摄像头java基础部分笔记(全)note(javaoo_04)1.static修饰符可以修饰属性,方法,代码块,内部类特征:1)static修饰的资源,属于类资源.在类加载的时候,进行静态资源的加载(只加载一次).2)static修饰的资源属于共享资源.类名.属性名类名.方法名3)静态资源在内存中存放的方式以及生成时间和非静态资源不同.4)静态方法只能访问静态资源,但是非静态方法能访问静态和非静态资源.5)常见的类库中的静态方法.如:Math,System,Arrays2.final修饰符(最终的)可以修饰类,方法,变量,常量.特征:1)final修饰的类不能被继承.2)final修饰的方法不能被重写.3)final修饰的变量不能被改变.4)final与static一起组合使用修饰属性,称为常量.一般名称全大写.3.内存分析Java中运用内存可划分为:栈:stack,堆:heap,代码区:code,静态常量池:pool4.抽象类(abstract)--抽象方法:概念:没有具体的方法业务逻辑,只是一个方法的概念.(即,只有一个行为动作的概念而没有具体实现).结构:修饰符abstract返回值方法名(参数列表);注意:1)抽象类不能实例化,只能通过子类实例化来获取对象.2)抽象类被继承,如果子类是具体类则必须实现父类的所有抽象方法,否则该子类也是抽象类.3)在项目开发阶段,抽象类被用于系统分析和设计.作业:分析运动员:运动员Player,球类运动员BallPlayer,游泳运动员swimPlayer,田径运动员RunPlayer属性:姓名name,性别sex,年龄age,练习场所place动作:吃饭eat,跑run,跳jump,游泳swim5.接口(interface)接口语法:修饰符interface接口名特征:1)接口里面的方法,全都是抽象方法,接口里的变量都是常量.2)接口是特殊的抽象类.是用来表示一种纯功能定义.没有具体实现.3)接口不能实例化.只能通过子类的实例化来获取对象.4)子类实现接口,使用implements.5)接口和接口之间可使用extends来继承.练习:1.找对象2,31)要有蓝翔烹饪技术(厨师)2)会编写网站的编码能力3)能带LOL,上钻石4)要有幽默感2.接口:产品(getPrice)抽象类:车(runstop)具体类:QQBenzpublicclassDemoextendsTestimplementsInterfaceDemo,InterfaceDemo1{}1.String(字符串)1)概念:由双引号引起来的一串字符.2)String的底层是char[]数组.String表现形式三种:String,char[]和StringBuilder3)字符串比较:使用equals.==和equals之间的区别:如果是引用类型,==用来比较内存地址值.equals用来比较字符串内容4)静态字符串:java在编译期间(javac),凡是字面量或者常量之间的运算都会完成,再运行时内存中进行产生.5)字符串与char[]之间的转换:a.字符串转char数组:char[]c=str.toCharArray();b.char数组转字符串:Stringstr=newString(c);6)由于String的底层是char[]的运算,所以它拥有下标,跟数组一样,从0开始到str.length()-1.7)API:参考手册中java.lang.Stringjava基础部分笔记(全)note(javaoo_05)2.Object对象类1)Object是所有类的基类(父类

1 / 43
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功