A:什么是标识符
* 就是给类,接口,方法,变量等起名字时使用的字符序列
- B:标识符的组成规则
- 英文大小写字母
- 数字字符
- $和_
- C:标识符注意事项
- 1,不能使用关键字
- 2,不能数字开头
- 见名知意
- A:包
- 最好是域名倒过来,要求所有的字母小写
- B:类或者接口
- 如果是一个单词首字母大写
- 如果是多个单词每个单词首字母大写(驼峰标识)
- C:方法或者变量
- 如果是一个单词全部小写
- 如果是多个单词,从第二个单词首字母大写
- D:常量
- 如果是一个单词,所有字母大写
- 如果是多个单词,所有的单词大写,用下划线区分每个单词
A:什么是常量 - 在程序执行的过程中其值不可以发生改变
- B:Java中常量的分类
- 字面值常量
- 自定义常量(面向对象部分讲)
- C:字面值常量的分类
- 字符串常量 用双引号括起来的内容
- 整数常量 所有整数
- 小数常量 所有小数
- 字符常量 用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号
- 布尔常量 较为特殊,只有true和false
- 空常量 null(数组部分讲解)
- A:二进制的数据表现形式
- 由0,1组成。以0b(b可以大写也可以小写)开头(JDK1.7版本可以表示二进制了)
- B:八进制的数据表现形式
- 由0,1,…7组成。以0开头
- C:十进制的数据表现形式
- 由0,1,…9组成。整数默认是十进制的
- D:十六进制的数据表现形式
- 由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头
基本数据类型分类(4类8种)
* 整数型
* byte 占一个字节 -128到127
* short 占两个字 -215~215-1
* int 占四个字节 -231~231-1
* long 占八个字节 -263~263-1
* 浮点型
* float 占四个字节 -3.403E38~3.403E38 单精度
* double 占八个字节-1.798E308~1.798E308 双精度
* 字符型
* char 占两个字节 0~65535
* 布尔型
* boolean
* boolean理论上是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有明确指定他的大小
- 先照格式来。
- a:导包
- 格式:
- import java.util.Scanner;
- 位置:
- 在class上面。
- 格式:
- b:创建键盘录入对象
- 格式:
- Scanner sc = new Scanner(System.in);
- 格式:
- c:通过对象获取数据
- 格式:
- int x = sc.nextInt();
- 格式:
- a:导包
数组
-
A:为什么要有数组(容器)
- 为了存储同种数据类型的多个值
-
B:数组概念
- 数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
- 数组既可以存储基本数据类型,也可以存储引用数据类型。
C:数组定义格式
数据类型[] 数组名 = new 数据类型[数组的长度];
成员变量和局部变量的区别)(掌握)
-
A:在类中的位置不同
- 成员变量:在类中方法外
- 局部变量:在方法定义中或者方法声明上
-
B:在内存中的位置不同
- 成员变量:在堆内存(成员变量属于对象,对象进堆内存)
- 局部变量:在栈内存(局部变量属于方法,方法进栈内存)
-
C:生命周期不同
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
- 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
-
D:初始化值不同
- 成员变量:有默认初始化值
- 局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。
-
注意事项:
- 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
- 基本数据类型变量包括哪些:byte,short,int,long,float,double,boolean,char
- 引用数据类型变量包括哪些:数组,类,接口,枚举
06.11_面向对象(方法的形式参数是类名的时候如何调用)(掌握)
- A:方法的参数是类名public void print(Student s){}//print(new Student());
- 如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
06.12_面向对象(匿名对象的概述和应用)(掌握)
- A:什么是匿名对象
- 没有名字的对象
- B:匿名对象应用场景
- a:调用方法,仅仅只调用一次的时候。
- 那么,这种匿名调用有什么好处吗?
- 节省代码
- 注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
- 那么,这种匿名调用有什么好处吗?
- b:匿名对象可以作为实际参数传递
- a:调用方法,仅仅只调用一次的时候。
- C:案例演示
- 匿名对象应用场景
面向对象(封装的概述)(掌握)
-
A:封装概述
- 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
-
B:封装好处
- 隐藏实现细节,提供公共的访问方式
- 提高了代码的复用性
- 提高安全性。
-
C:封装原则
- 将不需要对外提供的内容都隐藏起来。
- 把属性隐藏,提供公共方法对其访问。
面向对象(private关键字的概述和特点)
- A:人类赋值年龄的问题
- B:private关键字特点
- a:是一个权限修饰符
- b:可以修饰成员变量和成员方法
- c:被其修饰的成员只能在本类中被访问
- C:案例演示
- 封装和private的应用:
- A:把成员变量用private修饰
- B:提供对应的getXxx()和setXxx()方法
- private仅仅是封装的一种体现形式,不能说封装就是私有
面向对象(this关键字的概述和应用)
- A:this关键字特点
- 代表当前对象的引用
- B:案例演示
- this的应用场景
- 用来区分成员变量和局部变量重名
多态:
继承关系 方法重写 父类指向子类对象
成员变量
[图片上传中。。。(1)] 结果是 10 因为对象的 类型是父 。
所以看不到儿子的实现
方法比较特殊 变异看左边 运行看右边
超人的故事
向上 向下转型 父亲不能调用儿子的 fly 方法, 向下转型了就可以调用了!
多态的好处:
维护性 : 我在父改了就行
扩展性:
猫和狗 的 eat() 的参数 直接用毛和狗的父 Animal
[图片上传中。。。(2)]
多态的 弊端:
如果要是用子类特有方法 ,必须要强转之后instanceof 判断
抽象类:
abstract 修饰 抽象类不一定有抽象方法,但是有抽象方法必须是抽象类 抽象类不能被实例化。可以搞他子类,子类要么是抽象的 要么是重写父的所有抽象方法
抽象类的成员变量 既可以是变量也可以是常量
抽象类有构造方法,子类访问父类的成员
方法可以使抽象 也可以不是 抽象 就是要求子类必须要实现的
不能 和 static (类名.调用) final (不让子类重写) privite (私有 )
接口
接口中的方法都是abstract 的 接口不能实例化 对外暴露的 所以都是public 修饰 成员 及方法
成员变量: 只能是常量 默认是public static final
构造方法: 接口没有构造方法
成员方法: 只能是抽象的
抽象类 : is a 定义的是该继承体系共性
接口 : like a 定义的是该体系的扩展
不同包之间的访问:
1.不同包。要 导包 然后创建的对象还要是 public 并且 还有构造也是public
默认的 修饰 在同一包可以访问, 钱包对别人 是私有的 ,,对媳妇找死。。。
public 可以访问其他包的! 不同包 子类 无关类都行
默认 同类 同包下(子类和无关类)
protected 可以访问其他包的! 不同包 子类
private 仅仅是封装的一种体现方式