JAVASE第11天笔记

Day11

标签(空格分隔): java基础


day1-5:熟悉java 的语法规则
day6-10:思想(自定义类) Scanner System Math
day11-day14:API 系统常用类
day11: eclipse工具 Object类
day12: String类 字符串类
day13:StringBuffer和StringBuilder
day14:正则表达式 很多很多常用类

常用开发工具

记事本 Editplus eclipse MyEclipse
Eclipse:免费
MyEclipse:插件收费
JBuilder(现在不流行)

内容辅助键

Alt + /

快捷键

新建 Ctrl + N
格式化 Ctrl + shift + f(有可能被占用)
导包ctrl + shift + O (重要)
查看源码: F3 或者 Ctrl + 左键点击
抽取方法 Alt + shift + M (重要)
改名:Alt + shift +R (重要)
写完右边代码自动补全左边: Ctrl+2 —>松手 + L 自动补全

不同项目下的类相互访问问题

怎么解决?
我们需要把要使用的项目的工程 打成jar包
方法:右键工程–选择Export –选择java–jar File—选择导出的目录 –finish 完成
如果要在不同项目下使用,就需要导入
对着导出来的jar包右键复制—到要使用的项目下,点击右键–paste(粘贴)–如果要让这个jar包生效,这个时候需要把jar添加到classPath路径
步骤:在jar包右键—BuildPath —add To BuildPath

怎么导入工程 怎么删除工程(重要)

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

关于debug调试错误的方法

(1)在需要调试的代码位置打上断点,断点怎么打?在行号的左侧,双击,双击完之后会出现一个小蓝点,这个代表一个断点,如果想打多个断点?在就多行代码处双击即可.
注意:我们打断点的时候,要在有效的代码行去,不能在注释的代码的地方打断点
(2)打完断点要进入debug模式
两种方案:
1,在代码处右键—选择DebugAs —>java Application—>提示问是否进入—>YES
进入后,在右上方可以看到有variables(变量处)和BreakPoints(你打的多少个断点),变量处可以看到程序涉及的变量的编号,断点处,是所打的断点,以后可以在之里清除断点
2,点左上方的小甲虫子处就可以

  • 断点的使用
    进入下一步 : 按F6
    跳进所执行的方法:按F5即可
    如果要切换会来JAVA视图,要自己手动点击右上角的java处,这个时候就可以切换回来.

API

API: Application Programming Interface 应用程序编程接口
JAVA API:java 给我们提供的一些应用程序编程接口,其实就是一些类/接口,以后我们在API的时候,指的是文档说明书.但不代表API就是那本文档说明书

Object

所有的类都直接或者间接继承了Object类,意味Object的非私有方法我们的子类都有.

toString方法 (练习)

Object类的toString()返回的是什么?返回的字符串由什么组成?
字符串
包名.类名 @ 十六进制的hashCode值
对于我们的类而言,这个方法没有太大的意义,能不能让这个方法继承过来的时候变得有意义?
怎么才算有意义?
如果说,这个方法能够帮我们输出成员变量的赋值信息,这个时候我们认为有意义,通过观察,我们需要重写toString让这个方法变得有意义.
重写有两种方案:
第一种:自己重写,按你自己想输出什么信息就输出什么信息
第二种:由Eclipse帮我们重写,需要使用Alt+shift +S –>(松手) S
重写完之后,我就可以用对象名来调用toString方法,也就变得更有意义了.这个时候不会再使用父类的了,因为我们重写了.

Object类里面的equals方法 (练习)

我一个类在没有重写equals方法之前,这个equals方法比较的是地址值.
任意一个类从父类Object里面继承过来的equals方法都是比较地址值的,而我们希望的是能够比较对象的属性(成员变量)信息.这个时候需要怎么做?重写equals方法来帮我们实现这个目的.

//重写equals方法
    public boolean equals(Object obj) {
        Student  s = (Student)obj;
               //this.name 是一个字符串,用字符串对象来调用equals方法
               //在字符串里面也重写了这个equals方法,比较的是内容
               //this.age == s.age 这个为什么用==号呢,因为age是基本数据类型,基本数据类型==号不再比较地址值,是比较值
        return this.name.equals(s.name) &&this.age == s.age;
    }

==号和equals的区别(非常非常重要)

==和equals方法的区别
共同点:都可以做比较,返回值都是boolean
区别:1,==是比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
2,equals方法只能比较引用数据类型,equals方法在没有重写之前,比较的是地址值,底层依赖的是==号,但是比较地址值是没
有意义的,我们需要重写equals方法比较对象中的属性值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值