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();
}
}