JavaSE知识-11(Eclipse使用以及Object类型)

Eclipse中HelloWorld案例以及汉化

  • A:选择工作空间
    • 工作空间 其实就是我们写的源代码所在的目录
  • B:用Eclipse来完成一个HelloWorld案例
    • 代码以项目为基本单位
    • 创建项目
    • 创建包
    • 创建类
    • 编写代码
  • C:编译和运行
  • D:Eclipse的汉化
    • 从Eclipse3.5开始,安装目录下就多了一个dropins目录,只要将插件解压后放到到该目录即可。
    • 同理,这种方式卸载插件也是特别的方便,推荐这种方式
  • E:语法检查提示
    • 红色波浪线
      • 必须处理,否则编译通不过
    • 黄色波浪线
      • 可以不搭理他






保存后出现.class文件

运行点击Run或右键Run AS >Java Appilication

Eclipse的视窗和视图概述

  • A:视窗 每一个基本的窗体被称为视窗
    • PackageExplorer 显示项目结构,包,类,及资源
    • Outline 显示类的结构,方便查找,识别,修改
    • Console 程序运行的结果在该窗口显示
    • Hierarchy 显示Java继承层次结构,选中类后F4
  • B:视图 是由某些视窗的组合而成的
    • Java视图
    • Debug视图

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即可。

Eclipse中内容辅助键的使用

  • A:Alt+/ 起提示作用
  • B:main+alt+/,syso+alt+/,给出其他提示
  • C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可
  • C:定义自己的alt + /
    • windows--perference-Java-Editor-Templates--New

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+2,根据右边生成左边的数据类型,生成方法
  • J:删除代码 ctrl + d
  • K:抽取方法alt + shift + m
  • L:改名alt + shift + r

Eclipse中如何提高开发效率

  • alt + shift + s
  • A:自动生成构造方法
  • B:自动生成get/set方法

alt + shift + s + c 空参构造
alt + shift + s + o 有参构造
alt + shift + s + r 生成get/set方法




Eclipse中一个标准学生类及其测试

Eclipse中接口抽象类具体类代码体现

创建一个Animal项目
创建com.hwh.animal包
创建Animal抽象类
创建Cat类继承Animal类



Eclipse中如何生成jar包并导入到项目中

  • A:jar是什么?
    • jar是多个class文件的压缩包。
  • B:jar有什么用?
    • 用别人写好的东西
  • C:打jar包
    • 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
  • D:导入jar包
    • 复制到项目路径下并添加至构建路径。




会在桌面生成Animal.jar
将桌面的jar文件Ctrl+C在day11文件夹中Ctrl+V

添加到classpath中

实际开发时, 可能有多个jar文件, 新建一个lib文件夹
将jar文件拖至lib文件夹中去


再对jar文件>BuildPath>Add to BuildPath

Eclipse中如何删除项目和导入项目

  • A:删除项目
    • 选中项目 – 右键 – 删除
      • 从项目区域中删除
      • 从硬盘上删除Delete project contents on disk
  • B:导入项目
    • 在项目区域右键找到import
    • 找到General,展开,并找到
    • Existing Projects into Workspace
    • 点击next,然后选择你要导入的项目
    • 注意:这里选择的是项目名称

Eclipse中断点调试的基本使用

  • A:Debug的作用
    • 调试程序
    • 查看程序执行流程
  • B:如何查看程序执行流程
    • 什么是断点:

      • 就是一个标记,从哪里开始。
    • 如何设置断点:

      • 你想看哪里的程序,你就在那个有效程序的左边双击即可。
    • 在哪里设置断点:

      • 哪里不会点哪里。
      • 目前:我们就在每个方法的第一条有效语句上都加。
    • 如何运行设置断点后的程序:

      • 右键 -- Debug as -- Java Application
    • 看哪些地方:

      • Debug:断点测试的地方
        • 在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
      • Variables:查看程序的变量变化
      • ForDemo:被查看的源文件
      • Console:控制台
    • 如何去断点:

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


step into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);
step over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。

Eclipse查看Java中参数传递问题

API概述

  • A:API(Application Programming Interface)
    • 应用程序编程接口
  • B:Java API
    • 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,
    • 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。

Object类的概述

  • A:Object类概述
    • 类层次结构的根类
    • 所有类都直接或者间接的继承自该类
  • B:构造方法
    • public Object()
    • 子类的构造方法默认访问的是父类的无参构造方法

Object类的hashCode()方法

  • public int hashCode()
  • a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
  • b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo1_hashcode {
	public static void main(String[] args) {
		Object obj1 = new Object();
		int hashcode = obj1.hashCode();
		System.out.println(hashcode);
	
		Student s1 = new Student("张三",23);
		Student s2 = new Student("李四",24);
		System.out.println(s1.hashCode());
		System.out.println(s2.hashCode());    //Ctrl + alt + 下键  向下复制一行
		//每个对象都有自己的hashcode
	}
}

运行结果为
366712642
1829164700
2018699554

Object类的getClass()方法

  • public final Class getClass()
    • a:返回此 Object 的运行时类。
    • b:可以通过Class类中的一个方法,获取对象的真实类的全名称。
      • public String getName()

package com.hwh.object;
import com.hwh.bean.Student;
public class Demo2_getclass {
		public static void main(String[] args) {
			Student s = new Student("张三",23);
			Class clazz = s.getClass(); //获取该对象的字节码文件   class不能用作对象名取同音clazz
			String name = clazz.getName(); //获取名称(即类名)
			System.out.println(name);
			
		}
}

运行结果为com.hwh.bean.Student

Object类的toString()方法

  • public String toString()
    • a:返回该对象的字符串表示。
  •   public Stirng toString() {
      	return name + "," + age;
      }
    
    • b:它的值等于:
      • getClass().getName() + "@" + Integer.toHexString(hashCode())
    • c:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo3_toString {
	public static void main(String[] args) {
		Student s = new Student("张三",23);
		String str = s.toString();
		System.out.println(str);
		//System.out.println(s.toString()); 也可两句合并为一句
		
		//System.out.println("我的姓名是:"+s.getName()+",我的年龄是:"+s.getAge()); 一样输出姓名年龄
		//System.out.println(s); 直接打印对象的引用会调用toString, 一样输出姓名年龄
		
	}
}

运行结果
com.hwh.bean.Student@15db9742

  • 左边:类名 中间:@ 右边:hashcode的十六进制表现形式


	@Override
	public String toString() {
		return super.toString();
	}

可修改为

	@Override
	public String toString() {
		return "我的姓名是:"+name+",我的年龄是:"+age;
	}

运行结果
我的姓名是:张三, 我的年龄是:23

toString方法的作用:可以更方便的显示属性值。 getXxx方法是为了获取值,可以显示也可以赋值,或者其他操作。

也可用Eclipse快捷键alt + shift + s + s


Object类的equals()方法

  • a:指示其他某个对象是否与此对象“相等”。
  • b:默认情况下比较的是对象的引用是否相同。
  • c:由于比较对象的引用没有意义,一般建议重写该方法。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo4_equals {
	public static void main(String[] args) {
		Student s1 =  new Student("张三", 23);
		Student s2 =  new Student("张三", 23);
		boolean b = s1.equals(s2);   			//比较2个对象是否相等
		System.out.println(s1 == s2); //比较地址值
		//System.out.println(b);					//重写之后比较的是对象中的属性值
	}
}

运行结果为false

  • Object中的equals方法是比较对象的地址值,没有什么意义,我们 需要重写它。
  • 因为在开发中我们通常比较的是对象中的属性值,我们认为 相同属性是同一个对象,这样我们就需要重写equals方法。
	@Override
	public boolean equals(Object obj) {
		Student s = (Student)obj;         //s1.equals(s2)
		return this.name.equals(s.name) && this.age == s.age;
	}

重写后运行结果为false true

posted @ 2020-02-02 22:55  20145232  阅读(559)  评论(0编辑  收藏  举报