第九次课总结
来源:互联网 发布:阿里云到底是干嘛的 编辑:程序博客网 时间:2024/06/05 08:00
在第九次课,主要讲到了下面的知识:包装类、字符串转成基本数据类型的三种方法、基本数据类型转字符串的方法、Object的toString()和equals()方法的使用、final修饰类、方法、变量、抽象类
一、包装器(wrapper)类
2、为了弥补基础数据类型进行计算和转换的繁琐操作(有利于类型转换)
3、自动装箱(Integer int = 100,隐式转换)和拆箱(int it = int;)
4、jdk1.5+后系统自动进行装箱和拆箱操作
二、字符串转成基本数据类型的三种方法:
1、利用包装类里面的parseXxx(String s)的静态方法,注意:Character没有ParseXxx()方法
2、利用包装类的Xxx(String s)构造器,如:
3、Xxx.valueOf(String s)方法
String markString = "45.9";double m1 = Double.parseDouble(markString);System.out.println(m1);double m2 = Double.valueOf(markString);System.out.println(m2);double m3 = new Double(markString);System.out.println(m3);运行结果:
45.945.945.9
4、介绍一个用于其他进制转换成十进制的方法:valueOf(String s, int radix),radix表示基数,即多少进制,s为你原来的进制的数值,注意:十六进制s中的前两个字符不能是“0x”,否则会抛出异常;八进制的s中的首个字符可以是“0”,也可以不写“0”。
如:
<span style="font-size:18px;">int age = Integer.valueOf("11", 16);System.out.println("十六进制字符串转换成十进制:" + age);</span>运行结果:
<span style="font-size:18px;"> 十六进制字符串转换成十进制:17</span>
三、基本数据类型转字符串的方法
1、建议使用:String.valueOf(xxx);
int num = 12;String numsString = String.valueOf(num);System.out.println("number = " + numsString);运行结果:
number = 12
2、也可以使用:基本数据类型与”” 进行连接运算(但是不够优雅)
四、Object的toString()和equals()方法的使用注意事项
1、toString()返回对象的“自我描述”
2、 == : 用于基础数据类型判断
equels() : 用于引用数据类型判断
如:
String s1 = "hello";String s2 = "hello";System.out.println("s1 == s2判断结果:"+(s1==s2));String s3 = new String("hello");String s4 = new String("hello");System.out.println("s1 == s3判断结果:"+(s1==s3));System.out.println("s3.equals(s1)判断结果:"+s3.equals(s1));System.out.println("s3.equals(s4)判断结果:"+s3.equals(s4));运行结果:
s1 == s2判断结果:true s1 == s3判断结果:false s3.equals(s1)判断结果:true s3.equals(s4)判断结果:true
3、补充:""和null的简单区别
null没内存地址;
""有内存地址,空字符串。
即:
空字符串:系统会为它分配内存空间;
null:系统不会为它分配内存空间。
五、final修饰类、方法、变量
1、final修饰的类不能被继承
2、final修饰方法不能被重写
3、对于fianl修饰的变量:
(1)final成员变量一旦有了初始值,就不能被重新赋值
如果不赋值,系统将会默认给它分配0、null或者false等值,毫无意义,也无法再次改变,所以必须显式初始化;
(2)
a.final实例变量:可以在普通初始化块中赋初始值,或直接指定,或在构造器中赋值,如:
class Shilibl{final String string;{string="s1";}final String string2="s2";final String string3;public Shilibl(String string3) {this.string3 = string3;}void print(){System.out.println(this.string3+"\n还有:s1 = "+string+"\ns2 = "+string2);}public static void main(String[] args) {Shilibl shilibl = new Shilibl("我是s3");shilibl.print();}}运行结果:
我是s3还有:s1 = s1s2 = s2b.final类变量:可以在静态初始化块赋初始值,或直接指定,如:
class Jingtaibl{final static String string1;static{string1="我是s1";}final static String string2="我是s2";public Jingtaibl() {}void print(){System.out.println("s1 = "+string1+"\ns2 = "+string2);}public static void main(String[] args) {Jingtaibl jingtaibl = new Jingtaibl();jingtaibl.print();}}
运行结果:
s1 = 我是s1s2 = 我是s2
(3)系统不会对局部变量进行初始化:
可以在定义时候指定,也可以不指定默认值,参照第一小点的规则。
(4)基本类型:不能重复赋值
引用类型:它仅仅是保存一个引用,只保证引用地址不会改变即可,也就是说对象本身是可以改变的,如:
//<span style="font-size:18px;">数组对象在变final int [] iArr = {3,4,2,9,6}; System.out.println(Arrays.toString(iArr)); //进行排序Arrays.sort(iArr);System.out.println(Arrays.toString(iArr));//赋值iArr[3] = 7;System.out.println(Arrays.toString(iArr));</span>
运行结果:
<span style="font-size:18px;">[3, 4, 2, 9, 6][2, 3, 4, 6, 9][2, 3, 4, 7, 9]</span>
六、抽象类
1、抽象类和抽象方法使用abstract修饰符来定义;
注意:抽象类的修饰符必须为public或protected,不能为private,缺省情况下默认是default
当修饰符为public时,一个在A项目的zilei包中的子类(文件为:zilei.java)如何继承自一个再B项目的fulei包中的父类(文件为:fulei.java)呢?
(1)目录结构:A为子类所在的项目,B为父类所在的项目
(2)父类和子类初始状态分别为:
(3)为了能让zilei继承fulei,需要A项目引用B项目:
首先。A项目右键“Properties”,接下来按照如图所示的步骤操作:
(4)接着在zilei中继承父类,但是遇到错误:
(5)需要修改父类的play()和work()方法的可见性:
(6)现在在子类zilei中就可以继承父类fulei,并实现父类中未实现的方法:
在第五步中,也可以把子类声明为抽象类。
2、抽象方法不能有方法体,即:public returnType abstractMethodName();
注意:抽象方法的修饰符必须为public或protected,不能为private,缺省情况下默认是default
3、抽象类不能被实例化,只能通过被子类继承来使用
注意点:(1)子类如果不是抽象类,则必须重写其所继承的抽象类的所有抽象方法,下面通过例子来说明:
<span style="font-size:18px;">abstract class Fulei{abstract void play();abstract void work();}class Zilei extends Fulei{@Overridevoid play() {}@Overridevoid work() {}}</span>
(2) 如果子类是抽象类,可以重写,也可以不重写所继承的父类的任意数量的抽象方法,照样通过例子来说明:
<span style="font-size:18px;">abstract class Fulei{abstract void play();abstract void work();}abstract class Zilei extends Fulei{@Overridevoid play() {}}abstract class anotherZilei extends Fulei{}</span>
4、含有抽象方法的类智能被定义为抽象类
七、作业
<span style="font-size:18px;">package chouxianglei;import java.util.List;public abstract class Shape {private String color;public abstract double computCircumference();public abstract String getType();public Shape(String color) {this.color = color;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}}</span>
<span style="font-size:18px;">package chouxianglei;public class Circle extends Shape {private double radius;private final double PI = 3.14;public Circle(String color,double radius) {super(color);this.radius = radius;}@Overridepublic double computCircumference() {return 2*PI*radius;}@Overridepublic String getType() {return "圆形";}public static void main(String[] args) {Circle circle = new Circle("红色", 10);System.out.println("颜色:"+circle.getColor());System.out.println("形状:"+circle.getType());System.out.println("周长:"+circle.computCircumference());}}</span>运行结果:
<span style="font-size:18px;">颜色:红色形状:圆形周长:62.800000000000004</span>
- 第九次课总结
- 第九次总结
- 第九次学习总结
- 2016.12 第九次CCF 总结
- 第九次周总结--在路上
- Java第九次课-输入输出
- 第九次上机课实验
- 第九次
- JSP语法_史国旭的个人总结(第九次课)
- JSP语法_史国旭的个人总结(第九次课)
- 2017年10月18日 第九次总结
- 第九次实验任务
- 第九次实验任务
- 第九次上机实验
- 第九次实验任务
- 第九次实验任务
- 第九次实验任务
- 第九次上机实验
- c 语言的标准输入输出,scanf,printf
- 二叉查找树
- 线性代数运算
- HashMap循环遍历方式及其性能对比
- 遍历HashMap的三种方法
- 第九次课总结
- c语言的基本数据类型
- 文章标题
- HashMap的三种遍历方法 2
- VBA快速获取创建sheet链接
- django1.9学习之投票系统第一课时
- 每日一练——N个节点的平衡二叉树有多少种形态
- assert 断言的不同编译器行为
- 使用AccessibilityService带你自动安装软件以及自动添加微信好友