7天学完Java基础之7/7
Object类的toString方法
类Object是类层次结构的根类
每个都使用Object作为超类
所有对象都实现这个类的方法
//这个是Object类的子类,实现了其所有方法
public class Person{
private String name;
private int age;
public Person(){}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
//重写toString方法
//重写参数列表要与父类参数列表相同
public String toString(){
String string = "{name="+name+" age="+age+"}";
return string;
}
}
public class PersonDemo{
public static void main(String[] args){
Person person = new Person("李白",22);
//直接打印对象,打印出来的是地址值
System.out.println(person);//Person@3b192d32
//没有重写父类的toString方法打印出来的也是地址值
String s = person.toString();
System.out.println(s);//Person@3b192d32
//现在重写了toString方法,
person.toString();//{name=李白 age=22}
}
}
//这个是Object类的子类,实现了其所有方法
public class Person{
private String name;
private int age;
public Person(){}
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
Object类的equals方法
public class PersonDemo{
public static void main(String[] args){
Person p1 = new Person("李白",22);
Person p2 = new Person("苏轼",23);
//直接打印对象,打印的其实就是地址值
System.out.println(p1);
System.out.println(p2);
//Object类的方法equals
//equals源码
//boolean equals(Object obj) Indicates whether some other object is "equal to" this one.
/*public boolean equals(Object obj) {
return (this == obj);
}*/
boolean b = p1.equals(p2);
System.out.println(b);
}
}public class PersonDemo{
public static void main(String[] args){
Person p1 = new Person("李白",22);
Person p2 = new Person("苏轼",23);
//直接打印对象,打印的其实就是地址值
System.out.println(p1);
System.out.println(p2);
//Object类的方法equals
//equals源码
//boolean equals(Object obj) Indicates whether some other object is "equal to" this one.
/*public boolean equals(Object obj) {
return (this == obj);
}*/
boolean b = p1.equals(p2);
System.out.println(b);
}
}
日期时间类 Date类
public class DemoDate{
public static void main(String[] args){
long l =System.currentTimeMillis();//获取从1970年1月1日到今天经历了多少毫秒
System.out.println(l);
//把毫秒值变成天数
long day = 24*60*60*1000;
long aday = l/day;
System.out.println(aday);//18036
//把天数转化成年
System.out.println(aday/365);//1970年距今49年
}
}
Date类的构造方法和成员方法
import java.util.Date;
public class DateClass{
public static void main(String[] args){
Date date = new Date();
//Date的空参数构造方法会返回系统当前的日期和时间
System.out.println(date);
Date date1 = new Date(100000000L);
//date有参构造方法将会把传递进来的数值转换成日期
System.out.println(date1);
System.out.println(method());
}
//获取毫秒值
public static long method(){
Date date = new Date();
return date.getTime();
}
}
DateFormat类的format方法和parse方法
import java.text.*;
import java.util.*;
public class DemoDateFormat{
public static void main(String[] args) throws ParseException{
method2();
}
public static void method(){ //首先创建DateFromat子类SimpleDateFormat对象
//并且创建对象是使用构造方法指定格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分55秒");
//调用方法format,调用方法是需要传递Date类
Date date = new Date();
System.out.println(date);
String str = sdf.format(date);
System.out.println(str);
}
public static void method2() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分55秒");
Date date = sdf.parse("2019年05月20日 15时21分55秒");
System.out.println(date);
}
}
import java.util.*;
import java.text.*;
//计算一个人活了多久
public class Survival{
public static void main(String[] args) throws ParseException{
System.out.println("让我们来帮你算算你活了多久");
System.out.println("请按照"+" yyyy-MM-dd"+" 格式输入你的出生日期吧");
Scanner sc = new Scanner(System.in);
String birth = sc.next();
//现在要把出生日期字符串,解析成Date格式
//需要与出生日期的格式一样,否则会解析异常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//需要一个指定格式的字符串格式
Date date = sdf.parse(birth);
//把日期转换成毫秒值
long ms = date.getTime();
//获取当前日期,转换成毫秒值
long todayTime = new Date().getTime();
long newMs = todayTime-ms;
long newDay = newMs/1000/60/60/24;
System.out.println(newDay);
}
}
Calendar类的常用成员方法
- public int get( int field ):返回给定日历字段的值
- public void set (int field ,int value):将给定的日历字段设置为给定值
- public abstract void add( int field ,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量
- public Date getTime();返回一个表示此Calendar时间值的Date对象
import java.util.*;
public class CalendarDemo{
public static void main(String[] args){
//public int get(int field):返回给定日历字段的值
//参数:传递指定的日历字段(YEAR,MONTH....)
//返回值:日历字段代表的具体的值
//getInstance是一个比较特殊的方法
//他会返回一个Calendar的子类
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);//获取当前系统的年份
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
System.out.println("年:"+year+" 月:"+month+" 天:"+day);
System.out.println("====================================");
c.set(Calendar.YEAR,2520);
c.set(Calendar.MONTH,5);
c.set(Calendar.DATE,20);
int year1 = c.get(Calendar.YEAR);//获取当前系统的年份
int month1 = c.get(Calendar.MONTH);
int day1 = c.get(Calendar.DAY_OF_MONTH);
System.out.println("年:"+year1+" 月:"+month1+" 天:"+day1);
//增加年的方法也是一样的
//c.add(Calendar.YEAR,2);
//c.add(Calendar.MONTH,3);
//把日历对象变成日期对象的方法
//c.getTime();这个方法将返回日期
}
}
System类
System类提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中,常用方法有:
public static long currentTimeMillis():返回以毫秒为单位的当前时间
public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中 ;
import java.util.*;
public class ArrayDemo{
public static void main(String[] args){
int[] src = {1,2,3,4,5};
int[] dest = {6,7,8,9,10};
System.out.println("复制前:" +Arrays.toString(dest));
System.arraycopy(src,0,dest,0,3);
System.out.println("复制后:"+ Arrays.toString(dest));
}
}
StringBuilder类
字符串缓冲区,可以提高字符串的操作效率(可以看成一个长度可以变化字符串)
//StringBuilder的构造方法
public class StringBuilderDemo{
public static void main(String[] args){
//空参数构造方法,其中没有字符,初始字符容量为16
StringBuilder sb = new StringBuilder();
System.out.println(sb+"羌笛何须怨杨柳,春风不度玉门关,");
//有参数的构造方法,字符内容为指定的内容
StringBuilder sb1 = new StringBuilder("云想衣裳花想容,春风拂槛露华浓");
System.out.println(sb1);
}
}
//StringBuilder的常用方法
public class StringBuilderDemo2{
public static void main(String[] args){
StringBuilder sb = new StringBuilder();
//这里吧sb的地址值赋值给了sb1
StringBuilder sb1 = sb.append("云想衣裳花想容,春风拂槛露华浓。");
System.out.println(sb);
System.out.println(sb1);
System.out.println(sb==sb1);
//链式编程
StringBuilder libai =sb.append("若非群玉山头见").append(",会向瑶台月下逢。").append("----清平调").append(".李白");
System.out.println(libai);
//云想衣裳花想容,春风拂槛露华浓。若非群玉山头见,会向瑶台月下逢。----清平调.李白
}
}
//String与StringBuilder的相互转换
public class StringBuilderDemo3{
public static void main(String[] args){
//String--->StringBuilder
String str = "云想衣裳花想容";
System.out.println(str);
StringBuilder sb = new StringBuilder(str);
sb.append(" 春风拂槛露华浓");
System.out.println(sb);
//StringBuilder-->Strintg
String sb2 = sb.toString();
System.out.println(sb2+" 若非群玉山头见,会向瑶台月下逢");
}
}
/*包装类:
基本数据类型,使用起来非常方便,但是没有对应的方法来操作这些基本类型的数据,可以使用一个类,把基本类型的数据装起来,在类中定义一些方法,这个类叫做包装类,我们可以使用类的方法来操作这些基本类型的数据
*/
/*装箱:把基本类型的数据,包装到包装类中(int-->Integer)
Integer类的构造方法
Integer(int value)
构造一个新分配的Integer对象,他表示指定的int值
Integer(String s)
构造一个新分配的Integer 对象,他表示Stirng参数所指示的值
传递的字符串必须是基本类型的字符串
静态方法:
Integer valueOf(int i)返回一个表示指定的 int值的 Integer
Integer valueOf(String s)
拆箱:在包装类中取出基本类型 int intValue();
*/
public class IntegerDemo{
public static void main(String[] args){
//装箱,先使用构造方法装箱
Integer integer = new Integer(5);//传递int值,完成装箱
//装箱,第二张方式
Integer integer2 = new Integer("10");//传递基本类型的字符串
System.out.println(integer);//重写了toString
System.out.println(integer2);//重写了toString
//第三种方式装箱
Integer integer3 = Integer.valueOf(1);
Integer integer4 = Integer.valueOf("2");
System.out.println(integer3);
System.out.println(integer4);
//拆箱
int i = integer3.intValue();
System.out.println(i);
}
}
//自动拆箱与自动装箱
Integer in = 1; //发生了自动装箱Integer in = new Integer(1);
//int in = in+2;//发生了自动拆箱
Integer类可以把基本类型的字符串变成int类型,也可以把int类型变成字符串类型
7天学完Java基础之7/7的更多相关文章
- 7天学完Java基础之0/7
笔记-7天学完Java基础之0/7 1.常用命令提示符(cmd) 启动:Win+R,输入cmd
- 简明易懂,将细节隐藏,面向新手树立web开发概念——学完Java基础语法,超快速上手springboot+mybatiJavaWeb开发
简明易懂,将细节隐藏,面向新手树立web开发概念 --学完Java基础语法,超快速上手JavaWeb开发 Web本质(先忽视各种协议) Web应用可以理解为浏览器和服务器之间的交互. 我们可以看一个简 ...
- 7天学完Java基础之5/7
接口 接口就是一种公共的规范标准 是一种引用数据类型 定义格式 public interface 接口名称{} java7 中接口可以包含常量,抽象方法:Java8 还可以额外包含默认方法,静态方法: ...
- 7天学完Java基础之4/7
静态static 如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享同一份数据 静态static 关键字修饰成员变量 public class St ...
- 7天学完Java基础之6/7
final关键字的概念与四种用法 final关键字代表最终,不可改变的 常见四种用法: 可以用来修饰一个类 当前这个类不能有任何子类 可以用来修饰一个方法 当final关键字用来修饰一个方法的时候,这 ...
- 7天学完Java基础之3/7
API概述 什么叫做API? API(Application Programming lnterface),应用程序编程接口. 所谓API就是值好多的类,好多的方法,JDK给我们提供了很多现成的类,我 ...
- 7天学完Java基础之1/7
方法重载 package cn.itcat.day04.demo01; //方法重载就是参数个数不同,参数类型不同,参数类型的顺序不同 //方法重载与参数名称无关,与方法返回值类型无关 //方法重载方 ...
- 7天学完Java基础之2/7
面向对象 面向对象的思想就是值我们要实现一个共功能的时候,我们不自己去做,而是找别人帮我们去做,帮我们去做的这个人就是对象.面向对象强调的是谁来帮我实现这个功能. 类与对象的关系 类:是一组相关属性和 ...
- 学完 JAVA SE后学什么 。。。
我觉得学习j2ee一定要循序渐进,千万不要太急了.把java基础打牢一点,再牢一点.各位,你们在后面学习什么 struts,hibernate,spring,ajax..都很轻松. 第一个阶段(jav ...
随机推荐
- 如何快速上手一款新的嵌入式CPU芯片(记录CC2540开发经历)
新换了工作,需要熟悉新公司的产品开发项目,更新博客就懈怠了,不过环境的不同,也让我对嵌入式开发有了更深刻的理解.在原公司我主要负责在STM32F207芯片平台上, 利用UCOS+LWIP进行嵌入式服务 ...
- oracle 导出数据字典
一.查看当前用户下表名,及表名的备注 select * from user_tab_comments where table_name like 'T_ONLINE%' 二.查询数据字典 -- 1. ...
- 我所见过的最简短、最灵活的javascript日期转字符串工具函数
我们知道javascript的Date对象并没有提供日期格式化函数.将日期对象转换成"2015-7-02 20:35:11"等这样的格式又是项目中非经常常使用的需求.近期在我们项目 ...
- 服务器----1U、2U、3U、4U
U是一种表示服务器外部尺寸的单位,是unit的缩略语,详细的尺寸由作为业界团体的美国电子工业协会(EIA)所决定. 之所以要规定服务器的尺寸,是为了使服务器保持适当的尺寸以便放在铁质或铝质的机架上.机 ...
- Metasploit学习笔记之——情报搜集
1.情报搜集 1.1外围信息搜索 1.1.1通过DNS和IP地址挖掘目标网络信息 (1)whois域名注冊信息查询(BT5.kali专有):root@kali:~# whois testfire.ne ...
- 淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划
淘宝数据库OceanBase SQL编译器部分 源码阅读--生成物理查询计划 SQL编译解析三部曲分为:构建语法树,制定逻辑计划,生成物理执行计划.前两个步骤请参见我的博客<<淘宝数据库O ...
- JAVA BigDecimal 高精度运算
文章参考一位博友,由于时间太久忘了链接,见谅! public class BigDecimalUtils { private static final int DIV_SCALE = 10;// 除法 ...
- JavaScript中label语句的使用
之前在读<javascript高级程序设计>的时候,看到过lable语句,当时看完感觉好像很少用到,但是今天,刚好在项目终于到了合适的场景,合理使用label可以大幅度优化性能. 首先来简 ...
- block-循环引用
在ARC机制下,app的内存管理由操作系统进行管理,不须要程序猿手动的管理内存,方便了开发.虽然,自己主动释放内存非常方便.可是并不是绝对安全,绝对不会产生内存泄露. 大部分导致iOS对象无法按预期释 ...
- app上架的问题
1..p12证书文件(钥匙串导出)开发证书和描述文件的 2.app打包好重Xcode上传到iTunes中的时候最好做校验: 3.程序跑真机出现的问题 解决方法:debug 模式改成release模式 ...