Object、String、toString、equals、日期打印

Object

包括数字,作为所有类的父类,没有不是Object的子类的类,Object构造方法是空参的,接口不继承Object

equals方法和toString:

返回值是String

指示其他某个对象是否与此对象相等,方法参数是Object类型,所以可以传入任何的数据类型


public class Person extends Object {
	private String name;
	private int age;

	public Person() {

	}

	public Person(String name, int age) {
		super();
		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;
	}

	// 重写父类toString方法
	// 重写要求,方法中,返回类中所有变量和值
	public String toString() {
		return name + age;
	}
	// Person继承下来了Object的方法equals(作用是作比较返回值是Boolean类型)
	// 但是不会重写父类源代码
	// public boolean equals(Object obj) {
	// return this==obj;
	// this是谁,谁调用的就是谁就是p1
	// 参数obj表是谁?传递的参数对象p2
	// 在引用类型里==表示比较对象的内存地址,但是比较内存地址是没有意义的
	// (每次使用关键字new定位对象的时候地址肯定不一样)

	public static void main(String[] args) {
		System.out.println();
	}

	// 重写父类equals方法,自己定义自己对象的比较形式
	// 比较年龄,this的成员变量age,和obj的成员变量p2age
	public boolean equals(Object obj) {
		// 对obj进行非空的判断
		if (obj == null)
			return false;
		// 如果obj接收到的是person类型才能做转换
		if (obj instanceof Person) {
			// 对obj参数进行类型的向下的转型,obj强行转Person
			Person p = (Person) obj;
			return this.age == p.age;
		}
		return false;
	}

}

class TestEquals {
	public static void main(String[] args) {
		// Person继承下来了Object的方法equals(作用是作比较返回值是Boolean类型)
		Person p1 = new Person("李四", 12);
		Person p2 = new Person("张三", 20);
		// Person对象p1,调用父类的方法equals方法进行比较
		boolean a = p1.equals(p2);
		System.out.println(a);
	}
}

class TestToString {
	public static void main(String[] args) {
		// 调用Person的方法tostring
		// 输出语句中,写的是一个对象,在执行的时候默认调用tostring方法
		Person p = new Person("张三", 23);
		String s = p.toString();
		System.out.println(s);
		System.out.println(p);// System.out.println(p.toString());两个一回事
	}
}

String

特点:思想就是面向对象,一切都是对象,字符串""也是对象

类是描述事物,String类,描述字符串对象的类、、所有的“”都是String类的实例就是对象

String的值在创建后不可变(定义好的字符串对象不变,改变的是指向的是后面生成的新的内存地址)。字符串的本质就是一个字符类型的数组

字符串的定义:String str1=new String(“asdfghjk”);

                          String  str2= “asdfghjk”;

str2.length:获取str2字符串的长度

String substring(int beginIndex,int engIndex)重新定义变量接收获取新的字符串是原字符串部分,并且包含头不包含尾

String substring(int beginIndex):包含头后面的字符全要

boolean staticswith(String perfix):查验是不是以指定的前缀开始

boolean endswith(String perfix):判断是不是以某一个后缀开始

boolean contains(String s):判断是不是包含某一个字符串

int  indexOf(char ch):查找一个字符在字符串中第一次出现的索引,如果查找的不存在就返回-1

byte[] getBytes()  将字符串变成数组,和byte相关的功能都会去查询编码表

char[]  toCharArray()  将字符串转换成数组

boolean equalsIgnoreCase(String s)传递字符串,判断字符串中的字符是否相等,并且忽略大小写

boolean equals(String s)传递字符串,判断字符串中的字符是否相等,不忽略大小写

public class StringTest {
	public static void main(String[] args) {
		getCount("AJVjdsaf4dffs45agerDFDFDF56");
	}
	/*获取指定字符串中,大小写字母、数字的个数
	 * 思路:1计算器,就是int变量,满足一个条件 ++
	 * 2.遍历字符串,长度方法length()+charAt遍历
	 * 3.字符判断是大写,小写,还是数字
	 */
	public static void getCount(String str) {
		//定义三个变量,计数
		int upper=0;
		int lower=0;
		int digit=0;
		//对字符串进行遍历
		for(int i=0;i<str.length();i++) {
			//String方法charAt,索引,获取字符
			char c = str.charAt(i);
			//编码表65-90大写,97-122小写,48-57数字
			if (c>=65&&c<=90) {
				upper ++;				
			}else if(c>=97&&c<=122) {
				lower++;
			}else if(c>=48&&c<=57) {
				digit++;
			}
					
		}
		System.out.println(upper);
		System.out.println(lower);
		System.out.println(digit);
	}
	
}

时间和日期自动打印

package Zuoye;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
//输出今天是今年中的第几天,第几周
//按照规定格式输出时间
public class DateDeom {
	public static void main(String[] args) {// 获取日历类
		Calendar c = Calendar.getInstance();// 从日历中获取第几天
		System.out.println(c.get(Calendar.DAY_OF_YEAR));
		System.out.println(c.get(Calendar.WEEK_OF_YEAR));
		// 把当前时间按照固定的格式输出
		Date d = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
		System.out.println(sdf.format(d));

		System.out.println(d.getMonth() + 1);// 1.8以前的输出月份,必须+1

		LocalDate ld = LocalDate.now();
		System.out.println(ld);// 1.8新更新的日期版本,比较方便

		LocalDateTime ldt = LocalDateTime.now();// 获取时间和日期同时出来
		System.out.println(ldt);// 时间和日期同时出来
		DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy年MM月dd日 hh:mm:ss");
		System.out.println(ldt.format(df));// 按照规定格式打印时间

	}
}

推荐使用1.8版本后的时间打印方法

Date应用

package Util_;

import java.util.Date;

public class UtilTools {
	static void dateTools() {
		Date d = new Date();
		System.out.println(d);//Wed Aug 01 11:18:27 CST 2018
		Date d2 =new Date();
		System.out.println(d2.equals(d));//比较时间前后false
		System.out.println(d.compareTo(d2));//-1
		System.out.println(d.getYear()+190);//308
		System.out.println(d.getTime());//1533093507946
		System.out.println(d.getMonth());//7
		System.out.println(d.getDate());//1
		
		long l =d.getTime();//将时间转换为毫秒
		System.out.println(l);//1533093507946
		System.out.println(new Date(15354L));//Thu Jan 01 08:00:15 CST 1970
		
	}
	public static void main(String[] args) {
		dateTools();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42764556/article/details/81324736