day11(Eclipse使用&Object类型)

###11.01_Java开发工具(常见开发工具介绍)(了解)

* A:操作系统自带的记事本软件

* B:高级记事本软件

* C:集成开发环境 IDE

* (Integrated Development Environment)

* D:Eclipse和MyEclipse的区别

* a:Eclipse是一种可扩展的开放源代码的IDE。

* b:Eclipse的特点描述

* 免费

* 纯Java语言编写

* 免安装

* 扩展性强

* c:MyEclipse

* 在Eclipse基础上追加的功能性插件,对插件收费

* 在WEB开发中提供强大的系统架构平台

* E:下载 http://eclipse.org/

* org是非盈利团体

* F:安装

* 绿色版 解压就可以使用(Eclipse)

* 安装版   双击运行,一路next即可(JDK)

* G:卸载

* 绿色版 直接删除文件夹即可

* 安装版 专业卸载软件或者控制面板添加删除程序

 

###11.02_Java开发工具(Eclipse中HelloWorld案例以及汉化)(了解)

* A:选择工作空间

* 工作空间  其实就是我们写的源代码所在的目录

* B:用Eclipse来完成一个HelloWorld案例

* 代码以项目为基本单位

* 创建项目

* 创建包

* 创建类

* 编写代码

* C:编译和运行

* D:Eclipse的汉化

* 从Eclipse3.5开始,安装目录下就多了一个dropins目录,只要将插件解压后放到到该目录即可。

* 同理,这种方式卸载插件也是特别的方便,推荐这种方式

* E:语法检查提示

* 红色波浪线

* 必须处理,否则编译通不过

* 黄色波浪线

* 可以不搭理他

 

###11.03_Java开发工具(Eclipse的视窗和视图概述)(了解)

* A:视窗  每一个基本的窗体被称为视窗

* PackageExplorer  显示项目结构,包,类,及资源

* Outline   显示类的结构,方便查找,识别,修改

* Console  程序运行的结果在该窗口显示

* Hierarchy 显示Java继承层次结构,选中类后F4

* B:视图  是由某些视窗的组合而成的

* Java视图

* Debug视图

 

###11.04_Java开发工具(Eclipse工作空间的基本配置)(掌握)

* A:程序的编译和运行的环境配置(一般不改)

* window -- Preferences -- Java

* 编译环境:Compiler 默认选中的就是最高版本。

* 运行环境:Installed JREs 默认会找你安装的那个JDK。建议配置了Java的环境变量。

* 问题:

* 低编译,高运行。可以。

* 高编译,低运行。不可以。

* 建议,编译和运行的版本一致。

* B:如何去掉默认注释?

* window -- Preferences -- Java -- Code Style -- Code Templates

* 选择你不想要的内容,通过右边Edit编辑。

* 注意:请只删除注释部分,不是注释部分的不要删除。

* C:行号的显示和隐藏

* 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。

* 隐藏:把上面的动作再做一次。

* D:字体大小及颜色

* a:Java代码区域的字体大小和颜色:

* window -- Preferences -- General -- Appearance -- Colors And Fonts --Java修改 -- Java Edit Text Font

* b:控制台

* window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font

* c:其他文件

* window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font

* E:窗体给弄乱了,怎么办?

* window -- Reset Perspective

* F:控制台找不到了,怎么办?

* Window--Show View—Console

* G:取消悬浮提示

* window -- Preferences -- Java--Editor--Hovers。右边将Combined Hover勾去掉。

* 这样代码的悬浮框就不会自动出现了。如果想看提示,将光标悬浮在代码上,按F2即可。

 

###11.05_Java开发工具(Eclipse中内容辅助键的使用)(掌握)

* A:Alt+/ 起提示作用

* B:main+alt+/,syso+alt+/,给出其他提示

* C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可

* C:定义自己的alt + /

* windows--perference-Java-Editor-Templates--New

 

###11.06_Java开发工具(Eclipse中快捷键的使用)(掌握)

* A:新建 ctrl + n

* B:格式化  ctrl+shift+f

* C:导入包  ctrl+shift+o

* D:注释  ctrl+/,ctrl+shift+/,ctrl+shift+\

* E:代码上下移动 选中代码alt+上/下箭头

* F:查看源码  选中类名(F3或者Ctrl+鼠标点击)

* G:查找具体的类 ctrl + shift + t

* H:查找具体类的具体方法 ctrl + o

* I:给建议 ctrl+1,根据右边生成左边的数据类型,生成方法

* J:删除代码 ctrl + d

* K:抽取方法alt + shift + m

* L:改名alt + shift + r

*

 

###11.07_Java开发工具(Eclipse中如何提高开发效率)(掌握)

* alt + shift + s

* A:自动生成构造方法

* B:自动生成get/set方法

 

###11.08_Java开发工具(Eclipse中一个标准学生类及其测试)(掌握)

* A:案例演示

* 用Eclipse实现标准学生类及其测试

/*

 * 学生类

 */

public class Student {

// 姓名

private String name;

// 年龄

private int age;

// alt+shift+s+c

public Student() {

super();

}

// alt+shift+s+o

public Student(String name, int age) {

super();

this.name = name;

this.age = age;

}

// alt+shift+s+r

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;

}

public void show() {

System.out.println("姓名:" + name + ",年龄:" + age);

}

}

/*

 * 测试类

 */

public class StudentDemo {

public static void main(String[] args) {

// 创建对象

Student s1 = new Student();

s1.setName("风清杨");

s1.setAge(22);

System.out.println(s1.getName() + "---" + s1.getAge());

s1.show();

Student s2 = new Student("刘青云", 40);

System.out.println(s2.getName() + "---" + s2.getAge());

s2.show();

}

}

###11.09_Java开发工具(Eclipse中接口抽象类具体类代码体现)(掌握)

* A:案例演示

* 用Eclipse实现接口抽象类具体类代码

抽象类:共性,需要进行执行的方法描述声明

接口:可扩展性功能

接口的示例代码:

public interface OneInterface {  //接口1

    public static final String oneName = "小明";//全局常量

    public abstract void msgOne();//公共抽象方法,无return

    

}

interface TwoInterface{  //接口2

    public static final String twoName = "小红";//全局常量

    public abstract String msgTwo();//公共抽象方法,有return

}

要去实现接口的子类:

public class Test implements OneInterface,TwoInterface{ //多接口实现

 

@Override

public void msgOne() {  //子类去实现接口1的方法

System.out.println(oneName);

}

 

@Override

public String msgTwo() {  //子类去实现接口2的方法

System.out.println(twoName);

return twoName;

}

public static void main(String[] args){

Test t=new Test();  //子类实例对象

t.msgOne(); //对象调用方法

t.msgTwo();

}

}  

抽象类代码例子:

public abstract class Abstract {

    String oneName="小明";

    String twoName="小红";

    public abstract void msgOne(); //抽象类自己的不能实现的方法

    public abstract String msgTwo();

    static void test(){  //抽象类自己的可以实现的方法

        System.out.println("小明\n小红");

    }

    public static void main(String[] args){

        test();  //抽象类不能创建对象,所以用static修饰方法,方便调用

    }

}

继承抽象类的子类:

public class Test extends Abstract{  //继承抽象类

    

    @Override

    public void msgOne() {  //重写了抽象类的方法

        System.out.println(oneName);

    }

 

    @Override

    public String msgTwo() {  //重写了抽象类的方法

        System.out.println(twoName);

        return twoName;

    }

    public static void main(String[] args){

        Test t=new Test();  //子类实例对象

        t.msgOne(); //对象调用方法

        t.msgTwo();

    }

}

###11.10_Java开发工具(Eclipse中如何生成jar包并导入到项目中)(了解)

* A:jar是什么?

* jar是多个class文件的压缩包。

* B:jar有什么用?

* 用别人写好的东西

* C:打jar包

* 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish

* D:导入jar包

* 复制到项目路径下并添加至构建路径。

 

 

###11.11_Java开发工具(Eclipse中如何删除项目和导入项目)(掌握)

* A:删除项目

* 选中项目 – 右键 – 删除

* 从项目区域中删除

* 从硬盘上删除

* B:导入项目

* 在项目区域右键找到import

* 找到General,展开,并找到

* Existing Projects into Workspace

* 点击next,然后选择你要导入的项目

* 注意:这里选择的是项目名称

 

###11.12_Java开发工具(Eclipse中断点调试的基本使用)(了解)

* A:Debug的作用

* 调试程序

* 查看程序执行流程

* B:如何查看程序执行流程

* 什么是断点:

* 就是一个标记,从哪里开始。

 

* 如何设置断点:

* 你想看哪里的程序,你就在那个有效程序的左边双击即可。

 

* 在哪里设置断点:

* 哪里不会点哪里。

* 目前:我们就在每个方法的第一条有效语句上都加。

 

* 如何运行设置断点后的程序:

* 右键 -- Debug as -- Java Application

 

* 看哪些地方:

* Debug:断点测试的地方

* 在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。

* Variables:查看程序的变量变化

* ForDemo:被查看的源文件

* Console:控制台

 

* 如何去断点:

* a:再次双击即可

* b:找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。

 

###11.13_Java开发工具(Eclipse查看Java中参数传递问题)(了解)

* A:断点演示

* 断点查看Java中参数传递问题

/**

 * 通过Debug查看程序执行流程

 */

 

class ArgsDemo {

public static void main(String[] args) {

 

int a = 10;

 

int b = 20;

 

System.out.println("a:" + a + ",b:" + b);

 

change(a, b);

 

System.out.println("a:" + a + ",b:" + b);

 

int[] arr = { 1, 2, 3, 4, 5 };

 

change(arr);

 

System.out.println(arr[1]);

 

}

/**

 * 基本类型

 */

 

public static void change(int a, int b) {

 

System.out.println("a:" + a + ",b:" + b);

 

a = b;

 

b = a + b;

 

System.out.println("a:" + a + ",b:" + b);

 

}

/**

 * 引用类型

 */

 

public static void change(int[] arr) {

 

for (int x = 0; x < arr.length; x++) {

 

if (arr[x] % 2 == 0) {

 

arr[x] *= 2;

 

}

 

}

 

}

###11.14_常见对象(API概述)(了解)

* A:API(Application Programming Interface)

* 应用程序编程接口

* B:Java API

* 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,

* 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。

* 文档说明书就是存放API的工具,如:JDK_API_1_6_CN.CHM,API是具体的类,如String,Object等。

###11.15_常见对象(Object类的概述)(了解)

* A:Object类概述

* 类层次结构的根类

* 所有类都直接或者间接的继承自该类

* B:构造方法

* public Object()

* 回想面向对象中为什么说:

* 子类的构造方法默认访问的是父类的无参构造方法

 

###11.16_常见对象(Object类的hashCode()方法)(了解)

作用:返回该对象的哈希值,返回的是一个int类型的值。

* public int hashCode()

* a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。

* b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。

Student st1 = new Student("hhaa",3);
        Student st2 = new Student("ha",4);
         s1.hashCode()和s2.hashCode() 哈希值不同,因为new出来了2个对象,且地址值不同。因为哈希值是根据对象的地址值来计算的。

###11.17_常见对象(Object类的getClass()方法)(在反射的时候掌握)

作用:

* public final Class getClass()

* a:返回此 Object 的运行时类。

* b:可以通过Class类中的一个方法,获取对象的真实类的全名称。

* public String getName()

意义:
           * 在反射中掌握使用
                * public final Class getClass(){}
                * 可以通过Class类中的一个方法,获取到对象真实类的全名称。
            * public String getName();                 
 例子:    
             Student st = new Student("xixi", 2);
             Class clazz1 = st.getClass(); // 获取该对象的字节码文件
             String name = clazz1.getName();  //   以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
             System.out.println(name); // com.zj.day11.two.bean.Student 返回的是该类的全名称。

 Class类中的getName()方法:
                * 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。         

###11.18_常见对象(Object类的toString()方法)(掌握)

* A:案例演示

* public String toString()

* a:返回该对象的字符串表示。

*

 

public Stirng toString() {

return name + "," + age;

}

* b:它的值等于:

* getClass().getName() + "@" + Integer.toHexString(hashCode())

* c:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。

* B:最终版

* 自动生成

 

###11.19_常见对象(Object类的equals()方法)(掌握)

作用:
           * 指示某个对象是否与此对象 “相等”
 意义:
                * 默认情况下比较的是两个对象的引用(地址值)是否相等
                * 由于比较对象的引用(地址值)没有意义,所以一般重写该方法       

 equals 
                a.Object类中的equal()比较对象的地址值,没意义。【Object中equals的底层是“==”来做比较,所以         用== 还是 equals 来比较对象的地址值,都是无意义的。】
                b.在开发中我们比较的往往是【对象的属性(name,age...)】,判断是否相等,这时我们需要重写equals方法。
                c.比较的是引用数据类型,用equals, 当比较的是基本数据类型时,只能用 == 。
    
 例子:
                前提:Student类中重写了equals方法。
                即:
                    public boolean equals(Object obj) {  //    相当于:s1.equals(s2);
                    Student s = (Student)obj;
                    return this.name.equals(s.name) && this.age == s.age ; //引用数据类型name用equals来比较, 基本数据类型age用 == 来比较。
                main方法中:
                    Student str1 = new Student("hh",4);
                    Student str2 = new Student("hh",4);
                    System.out.println(str1.equals(str2)); //false 因为底层采用的是 == 来作比较的。不重写该方法是没有意义的,因为比较的是地址值。
                    System.out.println(str1 == str2); // == 比较的是对象中的属性值,

###11.20_常见对象(==号和equals方法的区别)(掌握)

共同:
        * 都是用来做比较的,且返回的都是Boolean类型。

异同:

* ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值

* equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值