IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 学习大数据的第12天———Java面向对象(Oject类、包装类、接口相关知识) -> 正文阅读

[大数据]学习大数据的第12天———Java面向对象(Oject类、包装类、接口相关知识)

学习大数据的第12天———Java面向对象(Oject类、包装类、预习接口相关知识)

java.lang.Object类
? 1、Object类是所有java类的根父类
? 2、如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
? 3、Object类中的功能(属性、方法)就具有通用性
? 举例:
? Order order = new Order();
? System.out.println(order.getClass().getSuperclass);
?
面试题== 和 equals( ) 的区别
一、回顾==的使用 :
1、运算符:
2、可以使用在基本数据类型变量和引用数据类型变量中
3、如果比较的基本数据类型变量,比较两个变量的保存的数据是否相等,(不一定要类型相同)
4、如果要比较的是引用数据类型变量,比较两个对象的地址值是否相同,则两个对象是否指向同一个堆内存地址
二、equals方法的使用
equals()方法
1、是一个方法而非运算符
2、不能运用在基本数据类型,只适用于引用数据类型
3、Object类中的equals()的定义:跟
一样都是根据地址值来进行判断的
4、像String、Date、File、包装类等都重写了Object类中的equals方法,重写以后,不是比较地址相同,而是比较两个对象的“实体内容”的区别

包装类(封装类)的使用:让基本数据类型具有类的特征
	基本上数据类型                  包装类
	byte                          Byte
	short                         Short
	int                           Integer
	long                          Long
	float                         Float
	double                        Double
	boolean                       Boolean
	char                          Character
基本类型、包装类与String类间的转换
    (1)基本数据类型------------->包装类:1
                <--------------       2
	1、调用包装类的构造器:
		int num = 10;
		Integer in1 = new Integer(num);
		System.out.println(in1.toString);
		
		Integer in2 = new Integer("123");
		System.out.println(in2.toString);
		
		Integer in3 = new Integer("123abc");
		System.out.println(in3.toString);//异常,里面只能放纯粹的整型
		注意转换boolean时不区分大小写
	2、包装类转换基本数据类型:
		调用包装类的xxxValue()
		Integer in1 = new Integer(12);
		int i1 = in1.intValue();
		
		Float f1 = new Float(12.3);
		float f2 = f1.floatValue();
	JDK5.0新特性:自动装箱和自动拆箱:
		int num2 = 10;
		Integer in1 = num2;//自动装箱
		
		int num3 = in1;//自动拆箱
    (2)基本数据类型------------->String类:  3
                <--------------           4
		3、基本数据类型转换String类
			(1)直接转换,在后面加空字符串
				int num1 = 10;
				String str1 = num1 + "";
			(2)调用String重载的valueOf()方法:
				String str2 = String.valueOf(基本数据类型);
			(3)
		4、String类调用基本类型
			String str1 = "123";//强制转换是不行的,前提是都得是相同的子父类型,比如都是基本数据类型,但是我们可以调用包装类的parseXxx()来实现
         	int num2 = Integer.parseInt(str1);
         	
    (3)String类------------->包装类       5
              <--------------           6
         6、包装类转换为String类型
        	调用toString()方法

包装类的面试题:
如果相面两个题目的输出结果相同吗?格式什么
(1)Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);
(2)Object o2;
if(true){
o2 = new Integer(1);
}else{
o2 = new Double(2.0);
}
System.out.println(o2);
答:(1)1.0,Integer的类型提升成double
(2)1

预习接口(interface)知识:
类实现接口中的方法,称之为实现类

接口的使用:
1、接口的使用:interface来定义
2、Java中,接口和类是并列的两个结构
3、如何去定义接口,定义接口的成员
3.1、JDK7及以前的时候
只能去定义全局常量和抽象方法
>全局常量:public static final的
>抽象方法:public abstract的
3.2、JDK8
除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法
4、在java开发中,通过类实现接口,实现(implements)不是继承(extends),如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化,反之此实现类仍为一个抽象类
接口的注意事项:
4.1、接口中不能添加构造器,所以不能实例化

public class InterfaceTest{}

interface Attackable{
	void attack();
}

interface Flyable{
	//全局变量
	public static final int MAX_SPEED = 7900;
	public static final int MIN_SPEED = 1;
	
	public abstract void fly();
	
	public abstract void stop();
}
class plane implements Flyable{
	@Override
	public void fly(){
		System.out.println();
	}
	
	@Override
	public void stop(){
		System.out.println();
	}
}

class Bullet implements Flyable,Attackable{
	
}

5、Java类可以实现多个接口————————>弥补了java单继承性的局限性
6、结构:class AA extens BB implements CC,DD…{

}
7、类跟类之间叫继承(单继承)、类跟接口之间叫实现、接口跟接口之间叫继承(可以单个继承,也可以多继承)
因为CC继承AA、BB,所以AA、BB中的方法,CC中都有,而且当一个类实现CC的接口时候,就会实现AA、BB中的抽象方法

interface AA{
	void method1();
}
interface BB{
	void method2();
}

interface CC extends AA,BB{

}

class DD implements CC{

	@Override
	public void method1() {
    	System.out.println("这是一个methon1方法");
	}

	@Override
	public void method2() {
    	System.out.println("这是一个methon2方法");
	}
}

public class InterfaceDemo2 {
	public static void main(String[] args) {
    	DD d = new DD();
    	d.method1();
    	d.method2();
	}
}

8、接口的具体使用,体现多态性
9、接口,实际上就可以看作是一种规范

/*
    接口需要用的时候需要实现类帮助其使用,因为接口无法实例化
    1、接口的使用上也满足多态性
    2、实际上就是定义了一种规范
    
    创建接口的匿名实现类的对象
	    1、创建非匿名实现类的非匿名对象
	    2、创建非匿名实现类的匿名对象
	    3、创建匿名实现类的非匿名对象
	    4、创建匿名实现类的匿名对象
*/

interface USB {
	void start();
	
	void stop();
}
class Flash implements USB {
	@Override
	public void start() {
	    System.out.println("U盘开始工作!!!");
	}
	
	@Override
	public void stop() {
	    System.out.println("U盘结束工作!!!");
	}
}

class Printer implements USB {
	@Override
	public void start() {
	    System.out.println("打印机开始工作!!!");
	}
	
	@Override
	public void stop() {
	    System.out.println("打印机结束工作!!!");
	
	}
}

class Computer {
    public void teansferData(USB usb) {//USB usb = new Flash();
        usb.start();
        System.out.println("具体的传说数据细节");
        usb.stop();
    }
}

public class InerfaceDome3 {
    public static void main(String[] args) {
        Computer com = new Computer();
        Flash flash = new Flash();
        com.teansferData(flash);//接口的多态性
	 /*
        创建接口的匿名实现类的对象
            1、创建非匿名实现类的非匿名对象
            2、创建非匿名实现类的匿名对象
            3、创建匿名实现类的非匿名对象
            4、创建匿名实现类的匿名对象
     */
    System.out.println("*********************************");
    System.out.println("创建非匿名实现类的非匿名对象");
    Flash f = new Flash();
    com.teansferData(f);

    System.out.println("创建非匿名实现类的匿名对象");
    com.teansferData(new Printer());

    System.out.println("创建匿名实现类的非匿名对象");
    USB usb = new USB() {
        @Override
        public void start() {
            System.out.println("手机开始运行!!!");
        }

        @Override
        public void stop() {
            System.out.println("手机结束运行!!!");
        }
    };
    com.teansferData(usb);

    System.out.println("创建匿名实现类的匿名对象");
    com.teansferData(new USB() {
        @Override
        public void start() {
            System.out.println("打印机开始运行!!!");
        }

        @Override
        public void stop() {
            System.out.println("打印机结束运行!!!");
        }
    });
}
}

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:34:12  更:2022-01-17 11:35:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:49:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码