- 博客(86)
- 资源 (1)
- 收藏
- 关注
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第13章: 覆写:课时66:final关键字
final在程序之中描述的是种终接器的概念,在java里面使用final关键字可以实现如下的功能:定义不能够被继承的类、定义不能够被覆写的方法、常量。范例:使用final定义不能被继承类final class Channel {} // 这个类不能够有子类当子类继承了父类之后实际上是可以进行父类中方法覆写的,但是如果你现在不希望你的某一个方法被子类所覆写就可以使用final来进行定义。范例:定义不能够被覆写的方法class Channel { // 这个类不能够有子类 public final
2020-05-29 15:35:58 103
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第13章: 覆写:课时65:属性覆盖
当子类定义了与父类相同名称的成员时候就称为属性覆盖。范例:观察属性覆盖class Channel { String info = "www.mldn.cn" ;}class DatabaseChannel extends Channel { // 要进行数据库连接 String info = "HelloMLDN" ; // 名称相同 public void fun() { System.out.println(super.info) ; System.out.println(thi
2020-05-29 15:14:16 166
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第13章: 覆写:课时64:方法覆写限制
虽然利用方法的覆写可以更好的扩充父类的功能,但是对于覆写也是有其自身要求的:被覆写的方法不能够拥有比父类方法更为严格的访问控制权限。对于访问控制权限现在已经接触过三种:public > default (不写)> private,private权限是最小的,也就是说如果你此时父类中的方法使用了default权限定义,那么子类定义该方法的时候只能够使用public或default定义,如果你父类中的方法使用了public定义,那么子类中的方法只能够使用public定义。范例:观察错误的覆写c
2020-05-29 14:46:58 102
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第13章: 覆写:课时63:方法覆写
子类与父类一旦产生了继承关系之后,实际上子类会继承父类中的全部定义,但是这里面也有可能出现不合适的场景,子类如果发现父类中设计不足并且需要保留有父类中的方法或者属性名称的情况下就会发生覆写。方法的覆写当子类定义了与父类方法名称相同,参数类型及个数完全相同(跟父类方法一模一样)的时候,就称为方法的覆写。范例:观察方法覆写class Channel { public void connect() { System.out.println("[Channel父类]进行资源的连接。") ; }}
2020-05-29 14:21:31 185
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第12章: 继承的定义与使用:课时62:继承定义限制
现在已经清楚了整个的继承逻辑,那么下面对于继承实际上还有一些要求。1.java之中不允许多重继承,只允许多层继承。(1)在实际的生活之中一个人只会有一个亲老子,那么在程序的逻辑之中也是奉行此标准的。错误的继承:class A {}class B {}class C extends A,B { } // 多重继承正确的继承:class A {}class B extends A {}class C extends B { } // 多层继承继承的主要目的是扩展已有类的功能,但是多
2020-05-29 11:12:40 217
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第12章: 继承的定义与使用:课时61:子类对象实例化流程
现在已经成功的实现了继承关系,并且也已经发现了继承主要特点,但是一旦程序之中提供有继承逻辑,那么对于子类对象的实例化定义是有要求。从正常的社会逻辑来讲:没有你老子一定没有你(亲),对于继承程序的逻辑也是一样的,在你进行子类对象实例化的时候一定要首先实例化好父类对象。范例:观察一个程序class Person { public Person() { System.out.println("[Person父类]一个新的Person父类实例化对象产生了。") }}class Student ext
2020-05-29 10:09:27 100
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第12章: 继承的定义与使用:课时60:继承的实现
如果在java程序之中要想实现继承关系,那么就必须依靠extends关键字来完成,此关键字的具体语法如下:class 子类 extends 父类 {}特别需要注意的是,很多情况下会把子类称为派生类,把父类称为超类(SuperClass)。范例:观察继承的实现class Person { private String name ; private int age ; public void setName(String name) { this.name = name ; } publi
2020-05-28 17:06:20 174
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第12章: 继承的定义与使用:课时59:继承问题引出
面向对象的第二大特征就是继承性,继承性的主要特点在于:可以扩充已有类的功能。继承问题的引出所谓的良好的代码指的是结构性合理、适合于维护、可重用性很高,但是如果现在只是按照之前所学习到的概念进行程序的定义,那么不可避免的要面对重复问题,下面定义两个类:人类、学习类,如果按照传统定义,则结构如下:Person.java类:class Person { private String name ; private int age ; public void setName(String name) {
2020-05-28 16:06:03 221
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时58:其它操作方法
在String类里面还有一些比较小的方法提供给开发者使用,这些方法如下:No.方法名称类型描述01public String concat(String str)普通描述的就是字符串的连接02public String intern()普通字符串入池03public boolean isEmpty()普通判断是否为空字符串(不是null)04public int length()普通计算字符串的长度05public Stri
2020-05-28 15:17:27 203
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时57:字符串格式化
从JDK1.5开始为了吸引更多
2020-05-28 14:32:52 104
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时56:字符串截取
从一个完整的字符串之中截取出子字符串,对于截取操作有两个方法。No.方法名称类型描述01public String substring(int beginIndex)普通从指定索引截取到结尾。02public String substring(int beginIndex,int endIndex)普通截取指定索引范围中的子字符串范例:观察字符串截取操作public class StringDemo { public static void main
2020-05-28 12:06:31 202
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时55:字符串拆分
在字符串处理的时候还提供一种字符串拆分的处理方法,字符串的拆分操作主要是可以根据一个指定的字符串或者是一些表达式实现字符串的拆分,并且拆分完成的数据将以字符串数组的形式返回。No.方法名称类型描述01public String[] split(String regex)普通按照指定的字符串全部拆分02public String[] split(String regex,int limit)普通按照指定的字符串拆分为指定个数,后面不拆了范例:观察字符串拆分
2020-05-28 11:37:04 192
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时54:字符串替换
所谓的字符串替换指的是可以通过一个指定的内容进行指定字符串的替换显示,对于替换方法主要有两个。No.方法名称类型描述01public String replaceAll(String regex,String replacement)普通全部替换02public String replaceFirst(String regex,String replacement)普通替换首个范例:实现替换处理public class StringDemo { pu
2020-05-28 11:24:57 164
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时53:字符串查找
从一个完整的字符串之中查找子字符串查找操作,在String类里面一共提供有如下的几个查找方法:No.方法名称类型描述01public boolean contains(String s)普通判断字符串是否存在02public int indexOf(String str)普通从头查找指定字符串的位置,找不到返回-103public int indexOf(String str,int fromIndex)普通从指定位置查找指定字符串位置04
2020-05-28 11:16:56 142
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时52:字符串比较
字符串比较里面最为常用的方法就是equals()方法,但是这个方法需要注意的是其是进行大小写区分的,而除了equals()之外还有许多的比较方法。No.方法名称类型描述01public boolean equals(Object anObject)普通区分大小写的相等判断02public boolean equalsIgnoreCase(String anotherString)普通不区分大小写比较03public int compareTo(Str
2020-05-27 17:07:36 108
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时51:字符串与字节
字符串与字节数组之间也可以实现转换的处理操作,但是需要提醒一下,当进行了字符串与字节转换时,其主要目的是为了进行二进制的数据传输,或者是进行编码转换。No.方法名称类型描述01public String(byte[] bytes)构造将全部字节数组 变为字符串02public String(byte[] bytes,int offset,int length)构造将部分字符组变为字符串03public byte[] getBytes()普通将字符
2020-05-27 16:40:25 140
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时50:字符串与字符
在JDK1.9前,所有的String都利用了字符数组实现了包装的处理,所在在String类里面是提供有相应的转换处理方法的,这些方法包含有构造方法与普通方法两类。No.方法名称类型描述01public String(char[] value)构造将传入的全部字符数组 变为字符串02public String(char[] value,int offset,int count)构造将部分字符组变为字符串03public char charAt(int
2020-05-27 15:26:50 115
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第11章: String类常用方法:课时49:JavaDoc文档简介
在实际的项目开发过程之中,只要是项目都一定会存在有String类的定义,所以掌握这个类之中的常用处理方法对我们开发者而言是非常重要的。JavaDoc简介在以后进行开发的过程之中肯定要大量的去使用Java的API文档(JavaDoc),这个文档可以直接通过oracle的在线访问进行查看,地址:https://docs.oracle.com/en/java/javase/;在JDK1.9之前,所有的java中的常用类库都会在JVM启动的时候进行全部的加载,这样实际上性能会有所下降,所以在JDK1.9开始提
2020-05-27 12:03:35 156
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时48:主方法组成分析
java中的主方法组成是非常复杂的,而且单词也很多:public static void main (String args []),那么下面来对组成进行分析:public:描述的是一种访问权限,主方法是一切的开始点,开始点一定的公共的;static:程序的执行是通过类名称完成的,所以表示此方法是由类直接调用;void:主方法是一切的起点,起点一旦开始就没有返回的可能;main:是一个系统定义好的方法名称;String args[]:字符串的数组,可以实现程序启动参数的接收。范例:输出启动参数
2020-05-27 11:33:39 125
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时47:字符串修改分析
在String类之中包含的是一个数组,数组的最大缺点在于长度不可改变,当设置了一个字符串之后,会自动的进行一个数组空间的开辟,开辟的内容长度是固定的。范例:观察一个程序public class StringDemo { public static void main(String args[]) { String str = "www." ; str += "mldn." ; str = str + "cn" ; System.out.println(str) ; }}下面
2020-05-27 10:51:14 169
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时46:String对象常量池
对象池的主要目的是实现数据的共享处理。以String对象池为例,里面的内容主要就是为了重用,而重用实际上就属于共享设计,但是在java之中对象(常量)池实际上可以分为两种:静态常量池:指的是程序(.class)在加载的时候会自动将此程序之中保存的字符串、普通的常量、类和方法的信息等等,全部进行分配;运行时常量池:当一个程序(.class)加载之后,里面可能有一些变量,范例:观察一个程序(静态常量池)public class StringDemo { public static void main(
2020-05-27 10:30:19 173
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时45:String类对象两种实例化方式比较
现在已经清楚了在String类对象实例化的过程之中一共提供有两种处理模式,那么现在就需要区分好这两种处理模式到底该使用哪种会更好。1.分析直接赋值的对象实例化模式在程序之中只需要将一个字符串赋值给String类的对象就可以实现对象的实例化处理,现在假设只有如下一行代码:public class StringDemo { public static void main(String[] args) { String str = "mldn" ; }}这种情况下肯定只会开辟出一块堆内存空间
2020-05-27 09:49:15 200
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时44:字符串常量
现在已经清楚了String类的基本操作形式,但是需要做出一个明确的定义,在程序的开发之中任何的一个整数都是int型,任意的小数默认都是double,但是对于字符串而言,首先程序之中不会提供有字符串这样的基本数据类型,那么可以提供的只是String类,所以任何使用“ " ”号定义的字符串常量实际上描述的都是一个String类的匿名对象。String str = “mldn” ;所谓的String类对象的直接赋值直接描述的是,将一个匿名对象设置一个具体的引用名字。范例:观察匿名对象存在public c
2020-05-26 16:23:57 147
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时43:字符串比较
下面首先来回顾一下,如果说现在要想判断两个int型变量是否相等,那么肯定使用“==”来完成,这个是由程序直接提供的相等的运算符。范例:进行“==”比较public class StringDemo { public static void main(String[] args) { int x = 10 ; int y = 10 ; System.out.println(x == y) ; }}但是String类实际上也牵扯到一个相等的判断问题,但是对于String类相等的判断也
2020-05-26 15:07:17 155
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第10章: String类特点分析:课时42:String类简介
在实际的开发之中没有一个项目不去使用String类,也就是说String是整个系统开发之中一个至关重要的组成类,在java程序里面所有的字符串都要求使用“ " ”号进行定义,同是也可以利用“+”实现字符串的连接处理,但是对于String类实际上还有其自身的特点,本次来进行String类的特点分析。String类简介字符串严格意义上来讲并不能算是一个基本数据类型,也就是说没有任何一门语言会提供有字符串这种数据类型的,而java里面为了方便开发者进行项目的编写,所以利用其JVM的支持制作了一种可以简单使用的
2020-05-26 14:48:35 170
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第9章:数据表与简单Java类映:课时41:综合实战:复杂多对多映射
在进行实际项目开发过程之中,对于用户的授权管理是一项重要的任务,下面给出了一个最为常见的用户权限管理的表结构设计,基本的关系如下:1.一个用户可以拥有多个角色,一个角色可能有多个用户;2.一个角色可以拥有多个权限;需要实现如下查询功能:1.可以根据一个用户找到该用户对应的所有角色,以及每一个角色对应的所有权限信息;2.可以根据一个角色找到该角色下的所有权限,以及拥有此角色的全部用户信息;3.可以根据一个权限找到具备有此权限的所有用户信息。class Member { private Str
2020-05-26 11:52:59 223
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第9章:数据表与简单Java类映:课时40:综合实战:多对多映射
将以上的结构转换为类结构,并且可以获取如下的信息:获取一个用户访问的所有商品的详细信息;获取一个商品被浏览过的全部的用户信息。对于此时的程序只需要去考虑实体表的设计即可,也就是说对于中间的访问记录信息表不要求你进行转换处理,只定义两个类即可。class Member { private String mid ; private String name ; private Product products [] ; public Member(String mid,String name) .
2020-05-25 16:48:10 181
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第9章:数据表与简单Java类映:课时39:综合实战:一对多映射
按照表的要求将表的结构转换为类结构,同时可以获取如下信息:获取一个分类的完整信息;可以根据分类获取其对应的所有子分类的信息。class Item { private long iid ; private String title ; private Subitem subitems [] ; public Item(long iid,String title) { this.iid = iid ; this.title = title ; } public void setSub.
2020-05-25 16:08:54 108
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第9章:数据表与简单Java类映:课时38:数据表与简单java类映射转换
简单java类是现在面向对象设计的主要分析基础,但是对于实际的开发之中简单java类的定义来源是有依据的,往往都是根据数据表的结构来实现简单java类。在数据库之中实际上是提供有若干个数据表的,那么每一张实体数据表实际上都可以描述出一些具体的事物概念,例如:雇员信息表、部门信息表一看就知道描述的就是雇员或部门的信息。那么按照这个思路回到程序之中你会发现,程序类的定义形式实际上和这些实体表的差别并不大,所以在实际的项目开发之中数据表与简单java类之间的基本映射关系如下:1.数据实体表设计——类的定义;
2020-05-25 14:41:34 191
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第8章:引用传递实际应用:课时37:合成设计模式
引用应用分析三假设说现在要求你定义出一种可以描述电脑组成的类,那么在这样的状态下就必须进行拆分,电脑分为两个部分:显示器、主机,而主机上需要设置有一系列的硬件。class 电脑 { private 显示器 对象数组 [] ; private 主机 对象 ;}class 显示器[] {}class 主机 { private 主板 对象 ; private 鼠标 对象 ; private 键盘 对象 ;}class 主板 { private 内存 对象数组 [] ; private
2020-05-25 10:55:17 94
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第8章:引用传递实际应用:课时36:自身关联
引用应用分析二现在已经确定好了人与车的关系,但是现在也可以进行一步进行该操作的完善,例如:一个人肯定会有孩子,孩子也会成年,孩子成年之后也可以有车。class Car { private String name ; private double price ; private Person person ; // 车应该属于一个人 public Car(String name,double price) { this.name = name ; this.price = price ;
2020-05-25 10:25:51 140
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第8章:引用传递实际应用:课时35:类关联结构
引用传递是整个java开发与设计过程之中最为重庆的技术组成,对于引用传递也与实际的生活密切相关。引用应用分析一假设说现在生活比较好,于是有的人可以有一辆汽车,当然,有些人是没有汽车的,只有11路车可以使用,现在就要求可以通过面向对象的设计来解决实现以上的这种关系转换。class Car { private String name ; private double price ; private Person person ; // 车应该属于一个人 public Car(String name
2020-05-25 09:58:41 154
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时34:对象数组
在之前所接触到的都是基本数据类型定义的数组,但是在java程序本身各种数据类型都可以成为数组类型,所以类也可以成为数组类型,而这样的数组就称为对象数组,对象数组的定义格式如下:动态初始化:类 对象数组名称 [] = new 类 [长度] ,每一个元素的内容都是null;静态初始化:类 对象数组名称 [] = new 类 [] {实例化对象,实例化对象,…};范例:使用动态初始化定义对象数组class Person { private String name ; private int age ;
2020-05-24 21:23:36 176
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时33:方法可变参数
如果说现在要求定义一个方法,这个方法可以实现任意多个整形数据的相加处理。这个的情况下最早的时候只能够通过数组来进行处理。范例:传统实现操作class ArrayUtil { public static int sum(int [] data) { int sum = 0 ; for (int temp : data ) { sum += temp ; } return sum ; }}public class ArrayDemo { public static void
2020-05-24 21:02:43 182
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时32:数组相关类库
由于数组是一个重要的概念,所以在java语言本身也提供有数组的相关支持处理,这些处理是在开发中使用的。1.数组排序:java.util.Arrays.sort(数组名称)。class ArrayUtil { public static void printArray(int temp []) { for (int x = 0; x < temp.length ; x++) { System.out.print(temp[x] + "、") ; } System.out.prin
2020-05-24 18:58:18 168
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时31:数组转置案例分析
数组的反转操作指的是进行前后转置处理,即:首尾交换,例如,现现有一个数组,其内容如下:数组内容:1、2、3、4、5、6、7、8、9;交换后的内容:9、8、7、6、5、4、3、2、1;对于数组的前后交换有两种做法:做法一:定义一个新的数组而后按照逆序的方式保存(会产生无用的垃圾空间)class ArrayUtil { public static void printArray(int temp []) { for (int x = 0; x < temp.length ; x++) {
2020-05-24 18:34:03 183
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时30:数组排序案例分析
数组排序指的是可以将一个杂乱的数组按照顺序进行码放,但是对于数组排序总是通过一个基础的模型完成的,例如:本次先通过升序排序的方式来观察排序的处理。范例:数组排序分析public class ArrayDemo { public static void main (String args []) { int data [] = new int [] {8,9,0,2,3,5,10,7,6,1} ; for (int x = 0;x < data.length ;x ++ ) { f
2020-05-24 16:13:49 157
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时29:数组与方法
对于引用数据类型而言,主要的特点是可以与方法进行引用传递,而数组本身也属于引用数据类型,所以自然也可以通过方法实现引用传递的操作。落伍:实现一个数组的引用传递public class ArrayDemo { public static void main (String args []) { int data [] = new int [] {1,2,3,4,5} ; printArray(data) ; // 传递数组 } // 要求接收一个int型的数组 public static
2020-05-24 13:36:47 159
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时28:二维数组
在之前所定义的数组里面会发现只有一个“[]”,所以这个时候的数组就好像一行数据一样,可以利用下标进行行数据的访问。传统的数组就好比一行数据,如果要想找到一个数据只需要确定一个下标即可。下标0123456数据890909178965768897如果说现在你需要的是一个多行多列的结构(表),则就需要通过两个下标才可以描述出一个数据,那么就需要有行下标与列下标共同定义才可以找到,所以这样的数组形式就称为二维数组。下标0123456
2020-05-24 11:13:13 191
原创 阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第7章:数组的定义与使用:课时27:foreach输出
对于数组而言,一般都会使用for循环进行输出,但是在使用传统for循环输出的时候往往都采用了下标的形式进行数组元素的访问。范例:传统形式public class ArrayDemo { public static void main (String args []) { int data [] = new int [] {1,2,3,4,5} ; for (int x = 0; x < data.length; x ++){ System.out.println(data[x])
2020-05-24 10:10:39 196
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人