常用类
2021/4/24 10:55:25
本文主要是介绍常用类,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
常用类
clone
clone的对象,类要实现Cloneable ,重新开辟一个相同大小空间,返回一个引用,clone是浅拷贝
要想深拷贝,在重写的clone方法中,把引用数据类型拷贝一次,那个引用数据类型也要添加实现Cloneable
package com.often; public class ObjectTest implements Cloneable{ private String name; private int age; public ObjectTest(String name, int age) { 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 protected Object clone() throws CloneNotSupportedException { return super.clone(); } }
package com.often; public class Application { public static void main(String[] args) { ObjectTest o = new ObjectTest("张三", 18); System.out.println(o); //引用的复制 ObjectTest o1 = o; System.out.println(o1); ObjectTest o2=null; try { //clone o2 = (ObjectTest) o.clone(); System.out.println(o2); } catch (CloneNotSupportedException e) { e.printStackTrace(); } //浅拷贝(对象拷贝了以分,对象里面的对象没有拷贝) System.out.println(o.getName()); System.out.println(o2.getName()); System.out.println(o.getName()==o2.getName()?"浅拷贝":"深拷贝"); } }
toString
public String toString() { //类名+@+哈希码组成的16进制数 //作用,直接打印对象名,调用的就是这个方法 //可以重写 return getClass().getName() + "@" + Integer.toHexString(hashCode()); @Override public String toString() { return "ObjectTest{" + "name='" + name + '\'' + ", age=" + age + '}'; }
getClass
public final native Class<?> getClass();//final 不可重写 //结果是class +包名.类名
equals
public boolean equals(Object obj) { return (this == obj); } //判断是否指向一个对象,同一块地址 //子类可以重新equals方法来进行某些判断,Sting就有重写,来判断字符串是否完全一样
包装类
java八点基本数据类型,但是他们没有属性和方法,java是面向对象的,设计了数据类型的保证类,来方法使用这些数据类型比如转字符串等
package com.often; public class PackagingClass { public static void main(String[] args) { //装箱 Integer integer = new Integer(100); //自动装箱 Integer integer2=100; System.out.println(integer); //自动拆箱 int a=integer; System.out.println(a); Integer integer1 = new Integer(a); //指向对象为堆中不同地址:false System.out.println(integer==integer1); //重写equals方法,会判断值是否相等 System.out.println(integer.equals(integer1)); } }
与字符串之间相互转换
package com.often; public class PackagingDemo02 { public static void main(String[] args) { //字符串转整数 String[] s = {"123", "123aa", "-123", "+0234"}; for (String s1 : s) { try { int i = Integer.parseInt(s1); System.out.println(s1 + "可以转换整数" + i); } catch (NumberFormatException e) { System.out.println(s1 + "不可以转"); } } System.out.println("------------------"); //整数转字符串 //调用integer的toString int m = 200; String string = Integer.toString(m); System.out.println(string + 100); //或者加"" String s2 =""+m; } }
时间类
Date d=new Date() d.getTime()当前时间到1970年一月一日的毫秒数
当前的时间
SimpleDateFormat 时间格式化,构造函数放想要的时间的格式
Calendar日历类,抽象类,用getInstance实例化,可以修改或获得其中年,月等get() set( add( ) getTime为日期格式
打印一个日历
package com.often.DateClass; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class DateDemo02 { public static void main(String[] args) throws ParseException { Calendar c = input(); int i = c.get(Calendar.DAY_OF_MONTH); int[] message = getMessage(c); printCalendar(c, message, i); } private static void printCalendar(Calendar c, int[] message, int i) { System.out.println("日\t一\t二\t三\t四\t五\t六"); int num = 0; for (int i1 = 0; i1 < message[0] - 1; i1++) { num++; System.out.print("\t"); } for (int i1 = 1; i1 <= message[1]; i1++) { if (i1 == i) { System.out.print(i1 + "*" + "\t"); } else { System.out.print(i1 + "\t"); } num++; if (num % 7 == 0 && num != 0) { System.out.println(); } } } private static int[] getMessage(Calendar c) { c.set(Calendar.DAY_OF_MONTH, 1); int DAY_OF_WEEK = c.get(Calendar.DAY_OF_WEEK); //西方周日为星期一,月份西方3月为我们四月 int actualMaximum = c.getActualMaximum(Calendar.DATE); int[] message = {DAY_OF_WEEK, actualMaximum}; return message; } private static Calendar input() throws ParseException { System.out.println("请输入时间如2021/4/17"); Scanner scanner = new Scanner(System.in); String s = scanner.nextLine(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date date = sdf.parse(s); Calendar c = Calendar.getInstance(); c.setTime(date); scanner.close(); return c; } }
这篇关于常用类的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)