Day10 JavaSE基础复习 (10)面向对象-权限修饰符&匿名内部类 (11)Eclipse使用&Object类型 (12)String类
2019-05-18 20:02
357 查看
(10)面向对象-权限修饰符&匿名内部类
一.包
- 带包的文件在DOC中编译
javac -d . HelloWorld.java
java 包名.HelloWorld - 四种权限修饰符
本类 同一包下(子类与无关类) 不同包下(子类) 不同包下(无关类)
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y
二.内部类
- 外部类访问内部类成员
Outer.Inner oi = new Outer().new Inner();
外部类名.内部类名 对象名 = 外部类对象.内部类对象 外部类访问静态内部类中的非静态方法
Outer.Inner oi = new Outer.Inner(); //等号右边实际上是 Outer.new Inner();
外部类名.内部类名 对象名 = 外部类名.内部类对象 - 外部类访问静态内部类中的静态方法
Outer.Inner.method(); - 局部内部类:只能在其所在的方法中访问
- 局部内部类访问局部变量必须用final修饰
因为当调用这个方法时,局部变量如果没有用final修饰,他的生命周期和方法的生命周期是一样的,当方法弹栈
这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就没有了,如果用final修饰会
在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用
但是jdk1.8取消了这个事情,可以不加final
(11)Eclipse使用&Object类型
一.Eclipse
- IDE 集成开发环境 Intergrated Development Environment
- 下载 http://eclipse.org/
- 快捷键
alt + shift + s 再 + c 生成空参构造
alt + shift + s 再 + o 根据本地字段(成员变量)生成有参构造
alt + shift + s 再 + r 生成get set方法
alt + shift + r 改名
二.常见对象
- API (Application Programming Interface)应用程序编程接口
Java API 就是Java提供给我们使用的类,这些类将底层的实现封装了起来 - Object
hashCode(); //哈希值
Class clazz = *.getClass(); String name = clazz.getName(); //获取类名
toString(); //类名@hashCode十六进制表现形式
equal(Object obj); //Object中的equal方法是比较对象的地址值,需要重写。因为开发中通常比较的是对象的属性值
(12)String类
一. 面试题
[code]//常量池中没有这个字符串对象,就创建一个,如果有就直接用即可 String s1 = "abc"; String s2 = "abc"; syso(s1 ==s2); //true syso(s1.equals(s2)); //true
[code]String s1 = new String("abc"); //会创建两个对象,常量池中一个,对象中一个 //对象中的那个相当于常量池中的副本
[code]String s1 = new String("abc"); //记录的是堆内存对象的地址值 String s2 = "abc"; //记录的是常量池中的地址值 syso(s1 == s2); //false syso(s1.equals(s2)); //true
[code]String s1 = "a" +"b" + "c"; //java中有常量优化机制 String s2 = "abc"; String s3 = "ab"; String s4 = s3 + "c"; //底层会创建一个StringBuffer或StringBuilder对象,append进行拼接,然后 //调用toString方法转化成String类型对象,所以s4中存的是String对象的地址值 syso(s1 ==s2); //true syso(s1.equals(s2)); //true syso(s4 == s2); //false
相关文章推荐
- java基础学习面向对象之四种权限修饰符使用 五-12
- JAVA基础复习十-权限修饰符、匿名内部类
- 10 面向对象(形式参数和返回值的问题,包,导包,权限修饰符,常见的修饰符,内部类,匿名内部类(掌握))
- day10(面向对象_权限修饰符&匿名内部类)
- Java基础——面向对象+(匿名)对象+封装(修饰符权限)+变量+构造函数+This关键字
- Java基础学习笔记10——(形参和返回值,包,导包,权限修饰符,常见修饰符,内部类)
- 黑马程序员_JavaSE基础10 之 多态 内部类 匿名内部类
- (17)Java学习笔记——面向对象10——包 / 权限修饰符的的使用
- JavaSe基础XX11——面向对象——[内部类]
- JAVA基础初探(四)JAVA封装、包的概念及使用、访问修饰符、this关键字、内部类(成员,静态,方法,匿名)
- javaSE-面向对象-匿名内部类
- JAVA 面向对象 基础概念,匿名对象的使用,方法的重载
- JavaSE——Day10——内部类、成员内部类、局部内部类、匿名内部类
- JavaSe基础XX12——面向对象——[异常_2]
- java基础学习面向对象之匿名内部类 五-13
- JavaSE基础自学----内部类/匿名内部类
- C#基础知识复习1代码规范-执行流程(c#)-面向对象-引用命名空间-封装-继承-访问修饰符-虚方法-静态成员-多态-抽象类等
- JavaSE 基础 第41节 匿名内部类
- JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题
- java基础:熟悉3种内部类的写法,重点匿名内部类的使用