Java提升学习(六):Object类,泛类

Java提升学习(六):Object类,泛类

一、Obejct类

java.lang.Object 类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,终找的父类就是Object

Object的方法有以下几种:
在这里插入图片描述
toString();方法举例:

父类

public class Factory/*extends Object*/ {
	
	private String a;
	
	public Factory(String x){
		this.a = x;
	}
	
	public String toString() {
		return this.a;
		
	}
}

子类:

public class great {
	
	public static void main(String[] args){//这是一个主方法
		
		Factory factory = new Factory("haha");
		System.out.print(factory.toString());
	}
}
//-----------输出---------
haha

还有一个Objects,它提供了一些方法来操作对象,它由一些静态的实用方法组成。
在这里插入图片描述

二、泛类

一般地,在数据类型未知的情况下,会使用泛类,来进行预支。

  1. 泛类的定义:

父类

public class Factory<E>/*extends Object*/ {
	
	private E e;
	
	public void setE(E e){
		this.e = e;
	}
	
	public E getE() {
		return this.e;
		
	}
}

子类

public class great {
	

	public static void main(String[] args){//这是一个主方法
		
		Factory<String> a = new Factory();//在此处传入需要的数据类型
		a.setE("sabi");
		
		String b = a.getE();
		System.out.println(b);
	}
}

E相当于需要传入的数据类型,e是数据。

  1. 含有泛类型的方法:
修饰符 <代表泛型的变量> 返回值类型 方法名(参数){  }

示例

public class Factory<E>/*extends Object*/ {
	
	private E e;
	
	public void setE(E e){
		this.e = e;
	}
	
	public E getE() {
		return this.e;
	}
	
	public static <M> M way(M m) {
		
		return m;
	}
}

public class great {
	
	public static void main(String[] args){//这是一个主方法
		
		Factory<String> a = new Factory<String>();
		a.setE("sabi");
		
		String b = a.getE();
		System.out.println(b);
		
		System.out.println(a.way("hahaha"));
		System.out.println(a.way(66.66));
	}
}
//---输出---
sabi
hahaha
66.66

示例中定义的泛类方法的返回值也是泛类,比较活泛。

  1. 含有泛类的接口
修饰符 interface接口名<代表泛型的变量> {  }

示例

public interface MyGenericInterface<E>{ 
	public abstract void add(E e);           
	public abstract E getE();
        }
public class MyImp1 implements MyGenericInterface<String> {
	 @Override          
	 public void add(String e) {
	          //方法体    
	 }  
	 @Override      
	 public String getE() {
	       return null;
	 }      
 }
  1. 泛类通配符
    当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配 符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。
public static void main(String[] args) {
     Collection<Intger> list1 = new ArrayList<Integer>();     
     getElement(list1);     
     Collection<String> list2 = new ArrayList<String>();     
     getElement(list2); 
     } 
 public static void getElement(Collection<?> coll){

猜你喜欢

转载自blog.csdn.net/weixin_43818177/article/details/105733354