Java基础之接口和匿名内部类
接口(重点)
基本概念
接口主要指比抽象类还抽象的类,因此不能实例化对象。
定义类的关键字使用class,而定义接口使用interface关键字。
类和接口之间的关系
类和类之间的关系 – 使用extends关键字表达继承的关系 – 支持单继承
类和接口之间的关系 – 使用implements关键字表达实现的关系 – 支持多实现
接口和接口之间的关系-- 使用extends关键字表达继承的关系 – 支持多继承
抽象类和接口之间的主要区别(笔试题)
(1)定义抽象类的关键字是abstract class,而定义接口的关键字是interface。
(2)继承抽 ...
Java基础之多态和抽象类
多态(重中之重、难点)
基本概念
多态主要指同一种事物表现出来的多种形态。
语法格式
父类类型 引用变量名 = new 子类类型();
12345Person pw = new Worker();pw.show();解析:编译阶段调用Person类中的show方法,运行阶段调用Worker类中的show方法。
多态的效果
(1)当父类类型的引用指向子类对象时,父类类型的引用可以直接调用父类中独有的方法.
(2)当父类类型的引用指向子类对象时,父类类型的引用不可以直接调用子类独有的方法.
(3)对于父子类都拥有的非静态成员方法来说,编译阶段调用父类版本,运行阶段调用子类版本.
( ...
Java基础之继承、访问控制符和final
继承
基本概念
当多个类之间拥有相同的特征和行为时,可以将相同的内容提取出来组成一个公共类,让多个类分别吸收公共类中已有的特征和行为,而在多个类中只需要编写自己独有特征和行为的机制,就叫做继承。
使用继承可以提高代码的复用性、扩展性以及可维护性。
在Java语言中使用extends(扩展)关键字来表达继承关系。
如:public class Worker extends Person{} -表示Worker类继承自Person类
其中Person类叫做基类、父类以及超类。
其中Worker类叫做派生类、子类以及孩子类。
注意事项
(1)子类不可以继承父类的构造方法和私有方法,私有特征 ...
Java基础之递归调用、封装和static
方法的递归调用
基本概念
递归主要指在方法体内部调用当前方法自身的形式。
使用原则
123(1)使用递归必须找到规律和退出条件;(2)使用递归必须使得问题简单化而不是复杂化;(3)若递归影响程序的执行性能,使用递推取代之;
12345678910111213141516171819202122232425262728293031323334/* 编程实现阶乘的计算并打印*/public class JieChengTest { // 自定义成员方法计算参数n的阶乘并返回 n = 5; 递推 int show(int n) { //int n=5; i ...
Java基础之构造方法、方法重载和方法的传参
构造方法
语法格式
12345678910111213141516class 类名 { 类名(形参列表) { 构造方法体; }}如:class Person { Person() { System.out.println("构造方法就是我哦!"); }}//注意事项//a.构造方法的名称与类名完全相同,并且没有返回值类型(连void都不许有)。//b.当使用new关键字创建对象时会自动调用构造方法实现成员变量的初始化工作。//c.构造方法是初始化成员变量,当我们new对象 ...
Java基础之类、对象以及引用
面向对象编程的概念
什么是对象?
答:万物皆对象!
什么是面向对象?
答:面向对象就是指以特征(属性)和行为的观点去分析现实世界中事物的方式。
什么是面向对象编程?
答:面向对象编程就是指先使用面向对象的方式去分析,再使用任意一门面向对象的编程语言进行翻译的过程。
如何学好面向对象编程?
答:深刻理解面向对象编程的三大特征:封装、继承、多态。
类、对象以及引用
对象和类的概念
对象是客观存在的实体,在Java语言体现为内存空间的一块区域。
类就是分类的概念,是对具有相同特征和行为的多个对象共性的抽象描述,在Java语言中包含描述特征的成员变量和描述行为的成员方法。
类的定 ...
Java基础之数组二
一维数组
两个数组之间的复制
12345678910111213141516171819// 两个数组元素个数一致int[] as = new int[]{11,12,13,14,15};int[] bs = new int[ 5 ];int i;for(i=0; i<as.length; i++){ bs[i] = as[i];}for(i=0; i<as.length; i++){ System.out.print(“bs[“+i+”]=”+bs[i]+”\t”);}// 两个数组元素个数不一致int[] ...
Java基础之数组一
一维数组
基本概念
数组是相同数据类型的多个元素的容器,元素按线性顺序排列。
所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”)。
数组的操作其实就是对下标的控制,可以通过下标方式访问数组中每个元素。
数组的声明
123数据类型[] 数组名= new 数据类型[ 元素个数 ];或数据类型 数组名[] = new 数据类型[ 元素个数 ];
数组的访问
调用数组的length属性可以获取数组的长度:int len = arr.length;
可以通过下标的方式访问数组中的每一个元素。需要注意的是 ...
Java基础之循环结构
for循环结构
基本结构
123456789101112for(初始化表达式1;条件表达式2;修改初始值表达式3) { 循环体;}表达式1--> 表达式2--> true --> 循环体 | | ^ v |--<- 表达式3 --<--for (int i = 1; i <= 10; i++) { System.out.println(i);}
for循环中三个表达式可以省略但2个分 ...
Java基础之运算符和if分支结构
运算符
赋值运算符
等号后的赋值给等号前的,注意在Java中一个等号表示赋值运算,两个等号表示比较是否相等。
12int a=10,b=20;int t=a;
扩展赋值表达式(+=、-=、*=、/=)
12345678int num = 91;int index = num % 5;int a, b, c;a = b = c = 100; //整个表达式的值为100int sum = 100;sum += 10; //整个表达式的值为100
算数运算符
1234加(+)、减(-)、乘(*)、除(/)、 取余(%)整数相除,只能取整数部分,小数部分被舍弃。整数运算时,0不能做除数;浮点运 ...