A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 清风幕竹 中级黑马   /  2016-5-24 13:05  /  324 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

###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 + "]";
        }
       
}



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马