面向对象编程
一只瓶子a
这个作者很懒,什么都没留下…
展开
-
覆写
1、子类继承父类后,覆写父类中方法(方法名、参数、返回值均相同),覆写的目的在于优化父类的功能。2、在子类进行方法覆写之后,如想要继续调用父类中的方法,需使用“super.方法”3、被覆写的方法不能够拥有比父类更为严格的访问权限。public>default(不写)>private注:package com.demo;class Channel { priv...原创 2019-07-07 17:34:24 · 144 阅读 · 0 评论 -
UML图形
1、UML是统一的建模语言,本质就是利用图形化的形式来实现程序类关系的描述。在之前已经画出了大量的图形,这些图形都是按照UML标准进行的,使用最早、最广泛的设计工具是Rational Rose,后来出现的PowerDesigner也可以实现类图的定义。2、类图一般情况下类结构通过三层描述(其中,权限public用“+”表示,protected用“#”,private用“-”)类名称(抽...原创 2019-07-10 18:02:15 · 95 阅读 · 0 评论 -
单例(懒汉式、饿汉式)、多例设计模式
1、单例、多例设计模式主要是一种控制实例化对象产生个数的设计模式。2、在很多情况下是不需要重复产生对象的,所以就需要使用单例设计模式,即无论谁调用,仅产生一次实例化对象。对单例设计模式分为两种:懒汉式和饿汉式懒汉式:在第一次使用的时候进行实例化对象处理。饿汉式:在系统加载类的时候就会自动提供有类实例化对象(一加载类就会立即创建对象)。3、饿汉式写法class Singlet...原创 2019-07-10 19:22:10 · 317 阅读 · 0 评论 -
枚举
1、从JDK1.5之后提出的枚举的概念,主要作用是用于定义有限个数对象的结构,枚举就属于多例设计,且其结构比多例设计简单。2、利用eunm关键字实现枚举的定义enum Color { //枚举类 RED,GREEN,BLUE ; //实例化对象}Color c = Color.RED ; //在主类中获取实例化对象在进行枚举处理的时候可以利用values()方法获取所有的...原创 2019-07-10 20:31:50 · 89 阅读 · 0 评论 -
异常的捕获及处理
1、异常是程序中断执行的指令流。在出现错误之后,整个程序将不会按照既定的方式进行执行,而是中断执行。为了保证程序出现非致命错误后程序依然可以正常完成,所以就需要一个完善的异常处理机制。2、格式try{ // 可能出现异常的语句}[catch(异常类型 异常对象){ // 异常处理}catch(异常类型 异常对象){ // 异常处理}catch(异常类型 异常对...原创 2019-07-11 15:48:29 · 1010 阅读 · 0 评论 -
部门与雇员-数据表与简单Java类映射转换
// 部门与雇员——数据表与简单Java类映射转换package com.demo;//部门class Dept { private long deptno ; //部门编号 private String dname ; //部门名称 private String loc ; //部门位置 //关联字段 private Emp emps [] ; ...原创 2019-07-06 09:08:28 · 183 阅读 · 0 评论 -
分类与子分类-数据表与简单Java类(一对多映射)
// 分类与子分类-数据表与简单Java类(一对多映射)package com.demo;//分类class Iitem { private long iid ; private String title ; private Subitem subitem [] ; public Subitem[] getSubitem() { ...原创 2019-07-06 09:56:48 · 276 阅读 · 0 评论 -
顾客与所浏览的商品-多对多映射
// 顾客与所浏览的商品-多对多映射package com.demo;class Member { private String mid ; private String name ; private Product product [] ; public String getMid() { return mid; } publi...原创 2019-07-06 10:55:48 · 165 阅读 · 0 评论 -
String类特点分析
String简介:1、Java利用其JVM的支持制造了一种可以简单使用的String类2、String这个类里面之所以可以保存字符串的主要原因是其中定义了一个数组,也就是说在String中的字符串中的每一个字符的数据都是保存在了数组之中。JDK1.8之前String类保存的是字符数组(char型),从JDK1.9开始String类之中的数组类型采用了byte类。即字符串就是对数组的一种特殊...原创 2019-07-06 13:30:52 · 140 阅读 · 0 评论 -
内部类
1、结构允许嵌套,在一个类的内部定义其他的类,这样的类就称为内部类。2、内部类本身是一个独立且完善的类结构,在一个类的内部除了属性和方法外还可以定义class类。class Outer { //外部类 private String msg = "一只瓶子a" ; //私有成员属性 public void fun() { //普通方法 Inner in = n...原创 2019-07-11 17:48:45 · 66 阅读 · 0 评论 -
String类常用方法
1、JavaDoc文档简介Java的API文档,地址:https://docs.oracle.com/javase/9/docs/api/overview-summary.html在JDK1.9之前,所有的Java中的常用类库都会在JVM启动的时候全部的加载,这样性能会有所下降,从JDK1.9开始提供有模块化设计,将一些程序类放在了不同的模块里面。一般文档里的说明,包括:类的完整定义;...原创 2019-07-07 12:01:43 · 82 阅读 · 0 评论 -
继承的定义与使用
1、面向对象的第二大特征——继承性,继承性的特点在于可以重用父类中的结构并且可以扩充已有类的功能2、良好的代码:结构合理、便于维护、可重用性高3、class 子类 extends 父类 { }很多情况下会把子类称为派生类,把父类称为超类(SuperClass)子类继承父类并扩展后的内存分析情况:4、在进行子类对象实例化时一定要先实例化父类对象。现在即使没有进行父类对象的...原创 2019-07-07 13:37:35 · 149 阅读 · 0 评论 -
泛型
1、泛型从JDK1.5之后追加到Java语言里,目的在于解决ClassCastException的问题(在进行对象的向下转型过程中存在的安全隐患)。2、当同时存在多种数据类型时,首先可以考虑使用Object类接收(装箱与拆箱)。但是Object范围广,在向下转型时会出现问题(编译时正确,执行时报错)。因此当想要避免项目中会出现的“ClassCastException”最好的做法是回避掉对象的强...原创 2019-07-10 13:24:15 · 85 阅读 · 0 评论 -
用链表实现简单购物操作
//购物:商品->购物车->收银台package com.demo;//商品标准interface IGoods { public String getName() ; public double getPrice() ;}//购物车标准interface IShopCar { public void add(IGoods goods) ; //添加...原创 2019-07-14 10:36:02 · 249 阅读 · 0 评论 -
用链表实现宠物商店的定义与简单操作
import com.demo.LinkDemo.*; //导入链表类包//定义宠物标准@SuppressWarnings("unused")interface Pet { public String getName() ; //获得名字 public String getColor() ; //获得颜色}//宠物商店class PetShop { privat...原创 2019-07-13 23:45:42 · 163 阅读 · 0 评论 -
继承分析——学生类
package com.demo;class Person1 { private String name ; private String addr ; private char sex ; private int age ; // 省略getter与setter方法 // 注意无返回值类型 public Person...原创 2019-07-07 18:41:28 · 265 阅读 · 0 评论 -
字符串统计
1、顺序执行package com.demo;class StringUtil1 { public static int [] count(String str) { //统计结果返回到数组中 int countData [] = new int[2] ; char [] data = str.toCharArray() ; ...原创 2019-07-07 19:18:54 · 87 阅读 · 0 评论 -
继承分析——数组操作
package com.demo;class Array { //数组的操作类 private int [] data ; //整型数组 private int foot ; //进行数组索引控制 public Array(int len) { if(len > 0) { this.data = new int [len] ...原创 2019-07-07 20:00:31 · 94 阅读 · 0 评论 -
Annotation注解
1、Annotation是从JDK1.5之后提出的一个新的开发技术结构,其可以有效减少程序配置的代码,可以进行一些结构化的定义,是以一种注解形式实现的程序开发。2、程序开发结构的发展过程:①在程序定义的时候将所有可能使用到的资源全部定义在程序代码中。此时,如果服务器的相关地址改变,那么就要进行源代码的修改。②引入配置文件,在配置文件中定义全部要使用的服务器资源。适用于配置项不多的情况。...原创 2019-07-08 10:35:24 · 67 阅读 · 0 评论 -
多态性
1、多态性是面向对象中的第三大主要特征,多态性是在继承性的基础之上扩展出来的概念。2、在Java中多态性的两种实现模式:方法的多态性:方法的重载,方法的覆写对象的多态性:父子实例之间的转换处理,两种模式:(对象转型的处理属于多态性,这一特性必须在继承性的基础上实现)|-对象向上转型:父类 父类实例 = 子类实例,自动完成转换(使用较多)|-对象向下转型:子类 子类实例 = (子...原创 2019-07-08 11:46:39 · 86 阅读 · 0 评论 -
Object类
1、Object类的特点是可以解决参数的统一问题,即使用Object类可以接收所有的数据类型。2、Java中只有Object类不存在继承关系,所有的类默认情况下都是Object类的子类。在Object类设计的时候就考虑到了所有类的继承问题,所以该类提供有无参构造方法。3、Object类可接收所有子类:Object obj = new Person() ; //向上转型、4、对于所有的引...原创 2019-07-30 15:20:49 · 251 阅读 · 0 评论 -
抽象类的定义与使用
1、在继承类中,子类可以自由选择是否覆写父类方法,父类无法对子类做出强制性要求(强制覆写)2、抽象类主要作用在于对子类中覆写方法进行约定,在抽象类中定义抽象方法(使用abstract关键字电仪并且没有提供方法体的方法)来实现。而且抽象方法所在的类必须为抽象类。abstract class Person { //抽象类 public abstract String t...原创 2019-07-08 17:53:46 · 270 阅读 · 0 评论 -
包装类(装箱与拆箱)
1、包装类的主要功能是针对基本数据类型的对象装换而实现的,随着JDK版本的更新,包装类的功能也在发生着改变,有了更多的支持。2、前面学到,Object类是所有类的父类,并且可以接收所有的数据类型。但是基本数据类型并不是一个类,如果想要将基本数据类型以类的形式进行处理,那么就需要对其进行包装。【重要】package com.demo;// 以int数据为例实现一个包装处理的定义cla...原创 2019-07-08 19:04:02 · 621 阅读 · 0 评论 -
接口的定义与实现
1、接口可以理解为一个纯粹的抽象类(最原始的定义接口中只包含抽象方法和全局常量),但是从JDK1.8开始由于引入了Lambda表达式的概念,接口的定义也得到加强,其中还可以定义普通方法或静态方法。2、interface关键字interface IMessage { //定义一个接口 public static final String INFO = "hello" ; //全局常...原创 2019-07-09 20:17:43 · 3272 阅读 · 0 评论 -
链表的定义与使用
1、链表的设计思想:2、链表及操作链表的方法:(使用泛型是为了避免转型的异常)package com.demo;// 设置泛型避免安全隐患;接口定义标准interface ILink<E> { public void add(E e); //增加数据 public int size() ; //获取数据的个数 public boolean isE...原创 2019-07-12 18:59:16 · 523 阅读 · 0 评论 -
包的定义与使用
1、打包编译处理:javac -d . Hello.java"-d":表示要生成目录,目录结构就是package定义的结构“.”:表示在当前所在的目录中生成程序类文件在程序执行时需要带着包执行程序类:java 包名.类名2、包的导入(导入其他包的类)导包后为避免区分先编译哪个类,可以使用:javac -d . *.java(自行匹配)【注意】关于public class和c...原创 2019-07-10 10:49:38 · 336 阅读 · 0 评论 -
函数式编程
1、Lambda表达式从JDK1.8开始为了减缓使用者进行代码开发,专门提供了Lambda表达式支持,利用此操作形式可以实现函数式的编程。比较著名的函数式编程语言:Haskell、Scala。利用函数式编程可以避免一些面向对象编程中的一些繁琐的处理问题。分析传统匿名内部类:interface IChannel { public void send(String str) ;}...原创 2019-07-12 11:09:22 · 110 阅读 · 0 评论