###10.08_Java开发工具(Eclipse中一个标准学生类及其测试)(掌握)
* A:案例演示
* 用Eclipse实现标准学生类及其测试
案例:标准学生类及测试类
package com.itheima.bean;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.itheima.eclipse;
import com.itheima.bean.Student;
public class StudentTest {
public static void main(String[] args) {
Student stu = new Student("张三", 30);
System.out.println(stu.getName()+"....."+stu.getAge());
}
}
###10.09_Java开发工具(Eclipse中接口抽象类具体类代码体现)(掌握)
* A:案例演示
* 用Eclipse实现接口抽象类具体类代码
案例:Animal(重新建立一个新的项目Animal)
注意:此时在day11项目中无法直接使用上面的Cat类因为不是同一个项目, 需要用到下面的知识点,生成jar包
按照下面的方法生成jar包,并复制到day11项目中,但是发现在写测试类时,仍然不能使用,因为jar包里放的都是class文件,得告诉day11项目jar的classpath的路径,之前没告诉过,因为之前都是把当前路径作为classpath,现在这些文件得重新告诉Eclipse它们的classpath,方法右键/jar包/Build Path/Add to Build Path/(将添加的jar包,添加到classpath,当jar包变成像奶瓶一样的东西证明已经导入进来了),在项目中由于jar包比较多,不是简单的赋值到项目中并添加到构建路径就可以的,需要对jar包进行管理,右键项目/new/fold/输入名称为lib,
然后将jar包放入lib中重新进行Build Path
//在day11项目中对上面的内容进行测试
package com.itheima.eclipse;
import com.itheima.animal.Cat;
public class AnimalTest {
public static void main(String[] args) {
Cat cat = new Cat();
cat.eat();
cat.sleep();
}
}
###10.10_Java开发工具(Eclipse中如何生成jar包并导入到项目中)(了解)
* A:jar是什么?
* jar是多个class文件的压缩包。
* B:jar有什么用?
* 用别人写好的东西
* C:打jar包
* 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
* D:导入jar包
* 复制到项目路径下并添加至构建路径。
###10.11_Java开发工具(Eclipse中如何删除项目和导入项目)(掌握)
* A:删除项目
* 选中项目 – 右键 – 删除
* 从项目区域中删除
* 从硬盘上删除
* B:导入项目
* 在项目区域右键找到import
* 找到General,展开,并找到
* Existing Projects into Workspace
* 点击next,然后选择你要导入的项目
* 注意:这里选择的是项目名称
###10.12_Java开发工具(Eclipse中断点调试的基本使用)(了解)
* A:Debug的作用
* 调试程序
* 查看程序执行流程
* B:如何查看程序执行流程
* 什么是断点:
* 就是一个标记,从哪里开始。
* 如何设置断点:
* 你想看哪里的程序,你就在那个有效程序的左边双击即可。
* 在哪里设置断点:
* 哪里不会点哪里。
* 目前:我们就在每个方法的第一条有效语句上都加。
* 如何运行设置断点后的程序:
* 右键 -- Debug as -- Java Application
* 看哪些地方:
* Debug:断点测试的地方
* 在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
* Variables:查看程序的变量变化
* ForDemo:被查看的源文件
* Console:控制台
* 如何去断点:
* a:再次双击即可
* b:找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
案例:
package com.itheima.debug;
public class Demo1 {
public static void main(String[] args) {
int sum = 0;
for(int i=0;i<6;i++) {
sum+=i;
}
System.out.println("sum="+sum);
}
}
断点调试图如下:
###10.13_Java开发工具(Eclipse查看Java中参数传递问题)(了解)
###10.14_常见对象(API概述)(了解)
* A:API(Application Programming Interface)
* 应用程序编程接口
* B:Java API
* 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,
* 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。
###10.15_常见对象(Object类的概述)(了解)
* A:Object类概述
* 类层次结构的根类
* 所有类都直接或者间接的继承自该类
* B:构造方法
* public Object()
* 回想面向对象中为什么说:
* 子类的构造方法默认访问的是父类的无参构造方法
###10.16_常见对象(Object类的hashCode()方法)(了解)
* A:案例演示
* public int hashCode()
* a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
* b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
案例:
package com.itheima.object;
import com.itheima.bean.Student;
public class Demo1_HashCode {
public static void main(String[] args) {
// 创建Object类型的对象object
Object object = new Object();
// 获取object的hashCode,按住ctrl+单击/hashCode()方法查看其源码
// 返现hashCode()是个抽象方法,但是前面用native(本地)修饰符修饰
// 意思是借助本地系统资源帮我们计算的hashCode值,现在jvm是在window系统中运行的,就会借助window系统计算hashCode值
int hashCode = object.hashCode();
System.out.println(hashCode);
Student s1 = new Student("张三", 23);
Student s2 = new Student("李四", 24);
// ctrl+alt+向下的箭头,快速复制当前行
// 有的电脑上按照上面的快速复制方式会讲屏幕倒过来,解决方法:右击屏幕/图形选项/快捷键,选择禁用
System.out.println(s1);
System.out.println(s2);
}
}
###10.17_常见对象(Object类的getClass()方法)(在反射的时候掌握)
* A:案例演示
* public final Class getClass()
* a:返回此 Object 的运行时类。
* b:可以通过Class类中的一个方法,获取对象的真实类的全名称。
* public String getName()
*小写的class是用来描述类的信息的(属性和行为)
*大写的Class是用来描述编译后生成的字节码文件的(*.class文件)
案例:
package com.itheima.object;
import com.itheima.bean.Student;
public class Demo2_GetClass {
public static void main(String[] args) {
Student student = new Student("张三",24);
Class clazz = student.getClass(); //获取该对象的字节码文件
String name = clazz.getName(); //获取名称:即类的全名称
System.out.println("name="+name);
}
}
###10.18_常见对象(Object类的toString()方法)(掌握)
* A:案例演示
* public String toString()
* a:返回该对象的字符串表示。
* public Stirng toString() {
return name + "," + age;
}
* b:它的值等于:
* getClass().getName() + "@" + Integer.toHexString(hashCode())
* c:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。
* B:最终版
* 自动生成
案例:
package com.itheima.object;
import com.itheima.bean.Student;
public class Demo3_ToString {
/**
* 运行结果:com.itheima.bean.Student@40671416
* 通过查看源码(ctrl+单击"toString方法")返现,上述结果中@符号前是给对象所属类的全名称,
* .@符号后面是该对象hashCode值的十六进制的字符串表现形式,toString()源码如下:
* public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
*问题:在实际使用时直接打印出类全名称@hashCode值的十六进制的字符串表现形式,是没有意义的
*而实际上我们是想看到对象的具体的详细信息,这样就需要子类重写父类的toString方法
*重写toString方法的意义用用:可以更方便显示属性值,而getXxx()方法获取值可以进行其它运算,可以显示或做其它操作
* @param args
*/
public static void main(String[] args) {
//在重写toString方法前后分别运行改程序,看结果
Student student = new Student("张三",23);
//String str = student.toString();
//System.out.println(str);
//上面的两句话,可以写成下面的一句
System.out.println(student.toString());
System.out.println(student); //直接打印对象的引用,默认调用toString方法
System.out.println("我的姓名是:"+student.getName()+",我的年龄是:"+student.getAge());
}
}
重写Student类的toString方法:
package com.itheima.bean;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
/*@Override
public String toString() {
return "我的姓名是:" + name + ", 我的年龄是:" + age;
}*/
//上面的toString是自己写的,也可以让eclipse自动生成,alt+shift+s ->s->enter
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}
}
|
|