Java进阶(全)
想写几篇短的,奈何短篇文章确实不利于之后的翻阅, 以及工作上效率的提升.考虑到这点, 于是乎将所有的Java进阶的内容全部放到一篇文章中了, 其实前面也有零零散散的写过一些进阶的和基础的文章.
Tag: Java | SilverSucks (weiswift.github.io)
一些话想对自己以及朋友们分享:
苏格拉底曾说过:“未经审视的人生,是不值得过的”。
他老人家是想表达:生活,不是通过世俗的物质方式去度过,而是要透过理性,审视人的生命的终极需求,从而引导出一种新的生活态度。
哲学角度有点高,也不是所有人每天都会去思考生命的终极需求。但不可否认的是,我们的人生,的确需要审视!
好啦,开始本篇进阶教程;首先进阶的最重要的就是面向对象以及面向接口编程思想.
面向对象
面向对象的三大主要特性就是封装, 继承, 多态.
在面向对象之前,还有几个关键字.
Static关键字
Static可以修饰成员变量,成员方法, 代码块
Static修饰成员变量的时候:该变量作为类变量, 被所有的对象所共享.应用场景为计数器
Static修饰成员方法的时候: 该方法作为静态方法, 可以通 ...
【Java进阶】Interface's Benefit(学生管理系统案例)
Java学生管理系统
只是为了练习接口设计的一个学生系统小案例,算不上真正的学生管理系统.
需求说明
概要设计
具体实现
CodeDemo123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154// showAll 接口public interface ShowAll { void printInfo();}// sh ...
Java基础(全)
千里之堤毁于蚁穴,九层之台起于垒土。
吾观今人,或欲求快速成功,或贪图短暂荣光,而忽略了基础之重要性。基础之重要,犹如养生之道,长期积累,方能相辅相成,不可偏废。抱歉, 写成文言文了,一句话基础不牢地动山摇…..
Java项目结构
这个要单独说一下,Java作为一门高级语言,其结构化的设计思想也表现的淋漓尽致.
按照大小分别是项目>模块>包>类, 如果想建立day02的模块只需要在project下面新建module就行了
效果: day01和day02就能并列了(学习和测试的时候使用.)
变量和数据基本类型特殊变量定义
这里普通的变量就不说了,例如什么int, String, double这种数据类型, 一般人都会用的.
这里说一下三个特殊的基本类型
char类型变量,可以写数字,也可以用单引号写内容,建议使用单引号写内容;
1234例如:char a1 = 'a';char a2 = 97;上面两个变量的效果是一样的!
long类型变量,建议数字后面添加 L或 l;
例如: long b = 5555555L或者lon ...
【Java进阶】this和super及子父类构造方法访问流程
Java在学习的时候一般很少会注意的一些点,以及面向实际操作过程中的一些Demo吧主要是。
还有this和super这两个关键字的正确用法。
this和super关键字的作用
而一般用的最多的还是
因为
this.成员变量一般用于区分实例变量和局部变量。
super.成员方法用于访问父类的成员方法。
两种情况一般都是比较常见的,所以着重区别一下。
子父类构造方法访问流程抛砖引玉
创建子类对象的时候,一定是先找子类对应的构造方法;
在子类构造方法的第一行,一定会调用父类的构造方法,此时就会执行父类的构造方法,对父类进行初始化;父类初始化的内容,专供当前这个子类独享使用;
当父类的构造方法执行完成之后,才会执行子类构造方法中的其他代码,完成子类对象的初始化;
CodeDemo主要分三个类:父类,子类,Test测试类
Tips:
输出打印对象
在sout打印对象的时候,如果没有重写toString方法,则默认打印包名.类名@地址值这种格式
创建子类对象:首先调用子类构造器方法,然后super(有参则调用父类全参构造,无则调用空参构造)
父类12345678 ...
【Java进阶】方法的权限修饰符
开局一张图!….
一般我们最常用的是public和private、
权限修饰符概述1可以对代码访问权限进行控制的关键字;
分类1从小到大的顺序是: private (空白) protected public
【Java进阶】继承之方法的重写
还在懵逼重写和重载吗?
知道为什么叫继承之方法的重写,我怕我以后搞混重写和重载,干脆将继承和重写放一块。
(=_=)那就多看,多想。之前有一篇文章:【Java查漏补缺(二)】面向对象 | SilverSucks (weiswift.github.io)
方法的重载概述
方法重载:
在同一个类中, 出现方法名称相同, 但是参数列表不同的(个数不同,对应的数据类型不同)的两个或多个方法
方法重载与返回值的数据类型无关
应用场景
用来解决功能相似或相同, 但是方法名不能重名的问题
123456789101112131415161718192021222324252627public class OverLoaded {//boolean flag = compare(10, 20)public static void main(String[] args) { boolean flag = compare(10, 20); System.out.println(flag); short s1 = 11, s2 = 22; ...
【Java进阶】继承及应用场景
继承
Java是一门优秀的语言,相比C和C++具有更好的可读性。同时Java具有丰富的API,以及面向对象编程思想…对不起跑题了..
这里主要还是介绍面向对象的三大特性之一:继承
概述
继承是让java中的类与类之间产生父子关系,可以让子类直接使用父类非私有的内容;
继承使用extends关键字表示;
应用场景
凡是多个事物中有共性的内容的时候,都可以使用父类抽取出来;
语法123public class 子类 extends 父类{ //直接使用父类非私有的内容;}
创建对象的特点
创建子类对象的时候.里面一定会包含父类的对象(super表示);
继承的好处
提升了代码的复用性;
继承的注意事项
和Python最大的区别就是Python中一个类能够单继承,也能够多继承,但是Java为了保证安全性,只能使用单继承,但是能够多层继承。
类与类之间只能单继承,不能多继承;
可以多层继承;(继承具有传递性)
所有的类都直接或间接的继承了 Object 类;
CodeDemoFu类123456789101112131415package com ...
【Java进阶】单例设计模式
什么是设计模式?
设计模式就是具体问题的最优解决方案(是一种经验)
单例设计模式
单例设计模式指的是:一个类只有一个对象(这个类只允许创建最多一个对象),哪怕是创建多次也是同一个对象,类似于Windows操作系统的任务管理器,无论打开多少次,但是都会只有一个窗口。
单例设计模式的代码步骤:
将构造方法私有
提供一个静态的变量,用于保存该类的对象(根据创建对象的时机不同,可以分为懒汉和饿汉)
提供一个静态的方法,用于让调用者通过方法获取对象
饿汉式单例设计模式
在类一加载的时候就创建好对象了,这种单例设计是最常用的,也是最简单的。
1234567891011121314151617181920212223242526272829303132package com.xlkh.demo04_designMode;public class A { // 单例设计模式-饿汉式(在类一加载的时候,立刻创建出该类的对象 // 1,将构造方法私有(防止胡乱造对象 private A(){} // 2. 设计一个静态的该类型的变量 ...
【Java进阶】Static食用方式(二)
书接上回,上篇Static说明了:Static可以修饰变量,以及修饰变量的两个使用场景。
其实Static不止可以修饰变量,还可以修饰方法,修饰代码块
修饰方法的时候:Static修饰的方法可以被类名.方法名的方式直接调用,可以避免造对象,好处是
避免了new 对象,避免了在堆中开辟内存,直接加载类的时候将静态方法加载进方法区。
设计工具类的时候多半考虑用Static关键字。
使用类方法,实例方法的注意事项
Static修饰方法及代码块Static修饰方法应用场景-设计工具类
设计一个验证码工具类,给出一个验证码的长度,帮你自动生成一串随机的验证码,这个工具类是不需要你创造对象就可以使用的,所以可以使用Static修饰成员方法,通过类名.方法名直接调用。(避免了new对象可以节省时间资源和内存资源)。
Notice: 这个验证码方法过于简单,可以看之前的string
1234567891011121314151617181920212223242526272829303132333435package com.xlkh.dmeo03;import java.util.Rand ...
【Java进阶】Static食用方式(一)
人一定要认识到自己的愚蠢,自己才能摆脱愚蠢;认为自己很聪明的人,往往蠢得无以复加。
上面一句话援引自罗翔老师,同样的,人只有在认识到自己的不足之后,自己才能够有所补足,才会有所成。
另外,一个能力不足的人假如有一天突然侥幸成功,也会因为能力不足而驾驭不了自己的成功,反倒是因为成功让自己陷入危机之中。
对于一个靠技术吃饭的人来说,能力才是至关重要的,
对于一个靠熬出来的人来说,苟着才是必须的。
面向对象之Static
说到Static这个关键字,不得不说非常的熟悉了,首先说一下Static关键字使用场景吧。
当一个变量需要被所有对象所共享的时候
当有累加器的使用场景的时候,比如说统计一个类一共被实例化了多少次的时候
Static修饰方法的时候,可以通过类名.方法名直接调用方法,也可以使用对象名.方法名来调用
好处是,可以跳过new对象直接调用方法,减少了对内存的消耗。
总而言之:Static可以修饰变量,方法,代码块。
类变量使用场景-Static
这里类①和类②是两个分开的文件,以后一套代码虽然是不同的文件,但是也会写到一个代码块里面嗷,注意区分。
1234567891 ...
