随笔分类 - Java--面向对象
摘要:类继承的主要作用在于可以扩充已有类的功能。父类无法强制约定子类覆写某些方法。完善的类:可以直接使用的类,在开发之后都是继承抽象类。 抽象类的基本定义:1.抽象类的主要作用在于对子类中的覆写方法进行约定。2.抽象方法:使用了 abstract 关键字定义,并且没有提供方法体的方法。3.抽象方法所在的类
阅读全文
摘要:Java中只有一个类不存在继承关系,那就是Object类,所有的类都是Object类的子类。 既然Object类是所有类的父类,那么就可以使用 Object 类接收所有的子类对象(向上转型)。 获取对象信息: toString() 进行对象直接输出的时候所调用的方法就是 toString() 方法,
阅读全文
摘要:多态性的基本概念:多态性必须在继承性的基础上实现 两种实现模式: 1. 方法的多态性: 方法的重载:同一个方法名称可以根据传入的参数的个数和类型的不同来实现不同功能的执行。 方法的覆写:同一个方法可能根据使用子类的不同,有不同的实现。(类不同,方法的功能也可能不一样) 2. 对象的多态性:父子实例之
阅读全文
摘要:程序开发结构的历史: 1. 在程序定义的时候将所有可能使用到的资源全部定义在程序代码中。(如果修改程序,要修改文件的源代码) 2. 引入配置文件,在配置文件之中定义全部要使用的服务器资源。(配置文件会巨多,所有操作要通过修改配置文件完成,开发难度提升) 3. 将配置信息重新写回程序之中,利用一些特殊
阅读全文
摘要:class Person { //定义成员变量 private String name; private String addr; private char sex; private int age; //setter,getter方法 public void setName(String name){ this....
阅读全文
摘要:在Java中,使用 final 关键字可以实现:1. 定义不能被继承的类 2. 定义不能被覆写的方法,常量 全局常量(每个字母都大写): public static final 常量类型 常量名称 = 常量值;
阅读全文
摘要:1. 方法的覆写:子类定义与父类方法名称相同,参数个数和类型完全相同的方法。 2. 如果方法覆写,那么在实例化子类的时候,调用的将会是子类所覆写过的方法。 3. 覆写的意义在于优化父类的功能。 4. 子类方法覆写后,如果想要调用父类的方法,必须使用 super.方法() 5. 只要是在子类中调用父类
阅读全文
摘要:继承:在已有类的功能上继续进行功能的扩充。 继承的目的:子类可以重用父类中的结构,可以实现功能的扩充,子类可以定义比父类更多的内容,描述的范围可以更小。 super()--表示子类构造方法调用父类的构造,只允许放在构造方法的首行。 如果父类没有提供无参构造,则必须利用 super() 明确调用有参构
阅读全文
摘要:普通代码块,构造块,静态块,同步代码块 普通代码块:防止方法里面编写过多代码产生变量重名,对一个方法进行局部的代码分割 构造块:写在一个类里面的代码块 1. 构造块会在每次实例化对象的时候执行 2. 构造块会优先于构造方法执行 静态块:用 static 进行定义的代码块 1. 在非主类中使用:静态块
阅读全文
摘要:static 定义属性: 1. static 定义后的属性,相当于该类的所有对象的公共属性,如果某个对象对这个属性进行修改,将会波及其他的对象 2. static 定义的属性可由类名称直接调用 3. 非 static 定义的属性需要实例化对象之后才能访问,而 static 属性不受实例化对象的控制,
阅读全文
摘要:基础的对象判断: 以上代码实现了两个实例化对象的比较,对象的比较是挨个比较对象的属性,如果全部一样则可看看做两个对象一样。 上面的比较是在 main() 中实现的,main() 相当于一个客户端,所以程序逻辑应该越简单越好。 应该将代码封装在类中。
阅读全文
摘要:引用传递的核心意义: 同一块堆内存空间可以被不同的栈内存所指向,不同的栈内存可以对同一个堆内存进行内容的修改。 实例1: 实例2: 实例3:
阅读全文
摘要:在Java里面,利用this关键字可以实现类属性的调用,类方法的调用,表示当前对象。 在程序开发之中,要想访问类中的属性要在属性名前面加上this 其实 this 就是明确指代本类,属性和方法名称前面加上 this 则可以明确地表示这个是属于本类的属性和方法。 实例:构造方法之间的互相调用 this
阅读全文
摘要:字符与字符串: 实例1:将字符数组变成字符串输出 实例2:将部分字符数组变成字符串 实例3:返回指定索引对应的字符--charAt(index) 实例4:将字符串转换成字符数组 toCharArray() 实例5:字符串小写转大写 字符串的比较: 字符串查找: 字符串替换: 字符串截取: 字符串拆分
阅读全文
摘要:字符串的直接赋值: 字符串的比较:(== 和 equals的区别) == 比较是储存字符串的内存地址 equals()方法比较的是字符串的内容 开发之中判断字符串时,一定要将字符串写在前面: 直接赋值的字符串为什么可以共用一块相同的堆内存地址: 在JVM的底层存在一个对象池,当代码中使用了直接赋值的
阅读全文
摘要:数组的定义: 1. 声明并开辟数组: 2.分步完成定义 3.数组的初始化和输出 二维数组: 一维数组的转置:
阅读全文
摘要:简单Java类: 1. 类名要有意义,能知道这个类是干嘛使的 2. 类中的成员变量需要用 private 封装,封装之后的属性必须提供 setter, getter方法 3. 类中可以提供任意多个构造方法,但是一定要保留一个无参构造 4. 类中不允许出现任何输出语句,所有的信息交给被调用处输出 实例
阅读全文
摘要:构造方法的定义: 1. 方法名称与类名称相同 2. 没有返回值声明(void也不行的哦) 构造方法和普通方法的区别: 1. 构造方法只在对象实例化的时候调用一次 2. 普通方法是在对象实例化之后才调用,且可以调用多次 构造方法的作用: 在类实例化对象的时候给对象的属性设置初始化内容,它是为属性的初始
阅读全文
摘要:封装的目的: 如果不进行封装,在类中定义的属性就被对象在类的外部访问并修改。需要将类中的属性设置为不可见。 那么问题是: 如果将属性封装,程序要正常使用的话,需要通过一些办法让外部程序可以操作类的属性。 针对这个问题,在开发之中,有这样的要求: 1. 所有在类中定义的属性都用 private 声明。
阅读全文

浙公网安备 33010602011771号