day03【多态、包、权限修饰符、内部类,Object类,Date类】

今日内容

  • 多态(重点)
    • 面向对象的三大特征之一:封装,继承,多态。
  • 代码块
    • 已经讲完了
    • 包我们介绍一下就好了
  • 权限修饰符
    • 介绍一下: private -> 缺省 -> protected -> public
  • 内部类(很抽象)
    • 知识完整性(5大成分之一)
    • 只关注语法即可,实际开发几乎无用,主要是sun公司自己用,我们能理解即可!!
    • 匿名内部类(重点,必须掌握的)
  • Object类
    • API使用工程师。90%的技术都是别人写好的.我们直接调用。
    • 从这里开始,几乎没有语法了,全部是别人写好的技术我们直接调用即可,调用API。
    • 都是别人做好的技术,我们拿来用:
      • MySQL , JDBC, Mybatis,HTML , CSS , JS , JQuery ,UI框架 , WEB开发, Servlet , JSP
      • Tomcat , Spring家族的技术(Spring , Spring MVC Spring Data JPA ) , Spring Boot
      • Spring Cloud

教学目标

  • 能够说出使用多态的前提条件

    • ```
      (1)必须有继承或者实现关系!
      (2)必须存在父类类的变量引用子类类型的对象!
      (3)存在方法重写!
      
      
  • 理解多态的向上转型(自动类型转换)

    • 自动类型转换。Animal a = new Cat();
  • 理解多态的向下转型

    • 强制类型转换。
    • Animal a= new Cat();
    • Cat c = (Cat)a;
  • 能够完成笔记本案例

    • 参见代码!
  • 能够说出权限修饰符作用范

    • private 本类
    • 缺省 本类 本包其他类
    • protected 本类 本包其他类 其他包下的子类中
    • public 任何地方
  • 说出内部类的概念

    • 定义在一个类里面的类就是内部类。
  • 能够说出Object类的特点

    • 祖宗类,它的功能,全部类都 可以使用!!
  • 能够重写Object类的toString方法

    • 自动生成:重写返回对象内容输出。
  • 能够重写Object类的equals方法

    • 自动生成:比较对象的内容,制定比较规则。

第一章 多态[重点]

1.1 多态的形式

多态是继封装、继承之后,面向对象的第三大特性。

多态是出现在继承或者实现关系中的

多态体现的格式

父类类型 变量名 = new 子类/实现类构造器;
变量名.方法名();

多态的前提:有继承关系,子类对象是可以赋值给父类类型的变量。例如Animal是一个动物类型,而Cat是一个猫类型。Cat继承了Animal,Cat对象也是Animal类型,自然可以赋值给父类类型的变量。

总结

主程序

public class PolymorphicDemo{
public static void main(string[]args){
//父类类型对象名称=new 子类构造器;
Animal dlam=new Cat();//用父类类型的变量来接子类类型的变量
dlam.run();//调子类类型的run方法
Animal taiDi=new Dog();
taipi.run();
}
}

子类

class Dog extends Animal{
@override
public void run(){
system.out.print1n("跑的贼快~~~~!");}
}
class cat extends Animal{
@override
public void run(){
system.out.println("暴跑的飞快~~~~!");}
}

同一类型的对象:都是动物类;执行同一个行为(run),在不同状态下(cat 和 dog 子类不一样)会表现不同的行为特征(输出的值不同)

1.2 多态的案例演示

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后方法。如果子类没有重写该方法,就会调用父类的该方法

总结起来就是:编译看左边,运行看右边。

代码如下:

定义父类:

public class Animal {  public void eat(){System.out.println("动物吃东西!")}  

定义子类:

class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  
}  class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  
}

定义测试类:

public class Test {public static void main(String[] args) {// 多态形式,创建对象Animal a1 = new Cat();// 调用的是 Cat 的 eata1.eat();// 多态形式,创建对象Animal a2 = new Dog();// 调用的是 Dog 的 eata2.eat();}  
}
总结

编译看等号左边,是否有相应的代码,运行看等号右边,运行时是运行等号右边调用的代码

变量声明为父类类型,而变量是子类对象

变量没有多态的概念,所以编译看左边,运行也看左边
目标:多态的入门概述。

面向对象的三大特征:封装,继承,多态。多态的形式:父类类型 对象名称 = new 子类构造器;接口    对象名称 = new 实现类构造器;父类类型的范围 > 子类类型范围的。多态的概念:同一个类型的对象,执行同一个行为,在不同的状态下会表现出不同的行为特征。多态的识别技巧:对于方法的调用:编译看左边,运行看右边。对于变量的调用:编译看左边,运行看左边。多态的使用前提:(1)  必须存在继承或者实现关系。(2)  必须存在父类类型的变量引用子类类型的对象。(3)  需要存在方法重写。小结:记住多态的形式,识别,概念等语法即可!

1.3 多态的定义和前提

多态: 是指同一行为,具有多个不同表现形式。

从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。

前提【重点】

  1. 继承或者实现【二选一】

  2. 方法的重写【意义体现:不重写,无意义】

  3. 父类引用指向子类对象【格式体现】

    父类类型:指子类对象继承的父类类型,或者实现的父接口类型。

1.4 多态的好处

实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展性与便利。代码如下:

定义父类:

public abstract class Animal {  public abstract void eat();  
}  

定义子类:

class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  
}  class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  
}

定义测试类:

public class Test {public static void main(String[] args) {// 多态形式,创建对象Cat c = new Cat();  Dog d = new Dog(); // 调用showCatEat showCatEat(c);// 调用showDogEat showDogEat(d); /*以上两个方法, 均可以被showAnimalEat(Animal a)方法所替代而执行效果一致*/showAnimalEat(c);showAnimalEat(d); }public static void showCatEat (Cat c){c.eat(); }public static void showDogEat (Dog d){d.eat();}public static void showAnimalEat (Animal a){a.eat();}
}

由于多态特性的支持,showAnimalEat方法的Animal类型,是Cat和Dog的父类类型,父类类型接收子类对象,当然可以把Cat对象和Dog对象,传递给方法。

当eat方法执行时,多态规定,执行的是子类重写的方法,那么效果自然与showCatEat、showDogEat方法一致,所以showAnimalEat完全可以替代以上两方法。

不仅仅是替代,在扩展性方面,无论之后再多的子类出现,我们都不需要编写showXxxEat方法了,直接使用showAnimalEat都可以完成。从而实现了实现类的自动切换。

所以,多态的好处,体现在,可以使程序编写的更简单,并有良好的扩展。

1.5 多态的弊端

我们已经知道多态编译阶段是看左边父类类型的,如果子类有些独有的功能,此时多态的写法就无法访问子类独有功能了

class Animal{public  void eat(){System.out.println("动物吃东西!")}
class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  public void catchMouse() {  System.out.println("抓老鼠");  }  
}  class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  
}class Test{public static void main(String[] args){Animal a = new Cat();a.eat();a.catchMouse();//编译报错,编译看左边,Animal没有这个方法}
}
总结
目标:多态的优劣势。优势:1.在多态形式下,右边对象可以实现组件化切换,业务功能也随之改变,便于扩展和维护。可以实现类与类之间的解耦。2.实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,可以传入一切子类对象进行方法的调用,更能体现出多态的扩展性与便利。劣势:1.多态形式下,不能直接调用子类特有的功能。编译看左边!! 左边父类中没有子类独有的功能,所以代码在编译阶段就直接报错了!小结:记住以上语法!

1.6 引用类型转换

1.6.1 为什么要转型

多态的写法就无法访问子类独有功能了。

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。也就是说,不能调用子类拥有,而父类没有的方法。编译都错误,更别说运行了。这也是多态给我们带来的一点"小麻烦"。所以,想要调用子类特有的方法,必须做向下转型。

回顾基本数据类型转换

  • 自动转换: 范围小的赋值给范围大的.自动完成:double d = 5;
  • 强制转换: 范围大的赋值给范围小的,强制转换:int i = (int)3.14

​ 多态的转型分为向上转型(自动转换)与向下转型(强制转换)两种。

总结
/**
目标:引用数据类型的自动类型转换。在基础班学过了基本数据类型的转换。1.小范围类型的变量或者值可以直接赋值给大范围类型的变量。2.大范围类型的变量或者值必须强制类型转换给小范围类型的变量。引用数据类型转换的思想是一样的:父类类型的范围 > 子类类型的范围。Animal          Cat引用数据类型的自动类型转换语法:1.子类类型的对象或者变量可以自动类型转换赋值给父类类型的变量。小结:记住语法!引用类型的自动类型转换并不能解决多态的劣势。*/
public class PolymorphicDemo {public static void main(String[] args) {// 1.引用类型的自动类型转换:小范围的对象赋值给大范围的变量Animal a = new Cat();// 2.引用类型的自动类型转换:小范围的变量赋值给大范围的变量Cat c = new Cat();Animal a1 = c;}
}

1.6.2 向上转型(自动转换)

  • 向上转型:多态本身是子类类型向父类类型向上转换(自动转换)的过程,这个过程是默认的。
    当父类引用指向一个子类对象时,便是向上转型。
    使用格式:
父类类型  变量名 = new 子类类型();
如:Animal a = new Cat();

**原因是:父类类型相对与子类来说是大范围的类型,Animal是动物类,是父类类型。Cat是猫类,是子类类型。Animal类型的范围当然很大,包含一切动物。**所以子类范围小可以直接自动转型给父类类型的变量。

1.6.3 向下转型(强制转换)

  • 向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。
    一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。

使用格式:

子类类型 变量名 = (子类类型) 父类变量名;:Aniaml a = new Cat();Cat c =(Cat) a;  
总结

大范围转为小范围需要强制转换:小范围=大范围(从右往左读),按ait+enter,选择第一个能够自动强制转换

判断正确返回为true就能执行下一步的操作

目标:引用类型强制类型转换引用类型强制类型转换的语法:1.父类类型的变量或者对象必须强制类型转换成子类类型的变量,否则报错!强制类型转换的格式:类型 变量名称 = (类型)(对象或者变量)注意:有继承/实现关系的两个类型就可以进行强制类型转换,编译阶段一定不报错!但是运行阶段可能出现:类型转换异常 ClassCastExceptionJava建议在进行强制类型转换之前先判断变量的真实类型,再强制类型转换!变量 instanceof 类型: 判断前面的变量是否是后面的类型或者其子类类型才会返回true,

真实类型看右边new的类型,强制转换的时候类型看左边父类定义变量时的父类类型

1.6.4 案例演示

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。也就是说,不能调用子类拥有,而父类没有的方法。编译都错误,更别说运行了。这也是多态给我们带来的一点"小麻烦"。所以,想要调用子类特有的方法,必须做向下转型。

转型演示,代码如下:

定义类:

abstract class Animal {  abstract void eat();  
}  class Cat extends Animal {  public void eat() {  System.out.println("吃鱼");  }  public void catchMouse() {  System.out.println("抓老鼠");  }  
}  class Dog extends Animal {  public void eat() {  System.out.println("吃骨头");  }  public void watchHouse() {  System.out.println("看家");  }  
}

定义测试类:

public class Test {public static void main(String[] args) {// 向上转型  Animal a = new Cat();  a.eat(); 				// 调用的是 Cat 的 eat// 向下转型  Cat c = (Cat)a;       c.catchMouse(); 		// 调用的是 Cat 的 catchMouse}  
}
总结

多态中,子类有继承父类,并且多个子类都有相同的方法,就能用父类的对象来进行调用

1.6.5 转型的异常

转型的过程中,一不小心就会遇到这样的问题,请看如下代码:

public class Test {public static void main(String[] args) {// 向上转型  Animal a = new Cat();  a.eat();               // 调用的是 Cat 的 eat// 向下转型  Dog d = (Dog)a;       d.watchHouse();        // 调用的是 Dog 的 watchHouse 【运行报错】}  
}

这段代码可以通过编译,但是运行时,却报出了 ClassCastException ,类型转换异常!这是因为,明明创建了Cat类型对象,运行时,当然不能转换成Dog对象的。

1.6.6 instanceof关键字

为了避免ClassCastException的发生,Java提供了 instanceof 关键字,给引用变量做类型的校验,格式如下:

变量名 instanceof 数据类型 
如果变量属于该数据类型或者其子类类型,返回true。
如果变量不属于该数据类型或者其子类类型,返回false

所以,转换前,我们最好先做一个判断,代码如下:

public class Test {public static void main(String[] args) {// 向上转型  Animal a = new Cat();  a.eat();               // 调用的是 Cat 的 eat// 向下转型  if (a instanceof Cat){Cat c = (Cat)a;       c.catchMouse();        // 调用的是 Cat 的 catchMouse} else if (a instanceof Dog){Dog d = (Dog)a;       d.watchHouse();       // 调用的是 Dog 的 watchHouse}}  
}

第二章 内部类

2.1 概述

2.1.1 什么是内部类

将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。

内部类是Java类的五大成份之一,也是我们最后一个需要学习的成份。

总结

成员变量是属性和信息;方法是行为;构造器是初始化对象;代码块是类加载时执行(静态代码块)或者,对象加载后执行(实例代码块),做资源初始化操作

private不能修饰外部类,缺省只能在本包下访问

2.1.2 什么时候使用内部类

一个事物内部还有一个独立的事物,内部的事物脱离外部的事物无法独立使用

  1. 人里面有一颗心脏。
  2. 汽车内部有一个发动机。
  3. 为了实现更好的封装性。

2.2 内部类的分类

按定义的位置来分

  1. 静态内部类,类定义在了成员位置 (类中方法外称为成员位置,有static修饰的内部类)
  2. 实例内部内,类定义在了成员位置 (类中方法外称为成员位置,无static修饰的内部类)
  3. 局部内部类,类定义在方法内
  4. 匿名内部类。一般定义在方法中,或者可执行代码中

2.3 静态内部类

静态内部类特点

  • 有static修饰的内部类,属于外部类本身的。
  • 总结:静态内部类与其他类的用法完全一样。只是访问的时候需要加上外部类.内部类。
  • 拓展:静态内部类可以直接访问外部类的静态成员。

内部类的使用格式

外部类.内部类。

静态内部类对象的创建格式

外部类.内部类  变量 = new  外部类.内部类构造器;

案例演示

// 外部类:Outer01
class Outer01{private static  String sc_name = "黑马程序";// 内部类: Inner01public static class Inner01{// 这里面的东西与类是完全一样的。private String name;public Inner01(String name) {this.name = name;}public void showName(){System.out.println(this.name);// 拓展:静态内部类可以直接访问外部类的静态成员。System.out.println(sc_name);}}
}public class InnerClassDemo01 {public static void main(String[] args) {// 创建静态内部类对象。// 外部类.内部类  变量 = new  外部类.内部类构造器;Outer01.Inner01 in  = new Outer01.Inner01("张三");in.showName();}
}
总结

Inner in = new Inner(); inner()就是内部类的无参构造器

同一个类中,用类名访问变量,类名.变量。通常类名可以省略

实例成员不属于外部类本身;静态内部类属于外部类本身,外部类的静态变量也属于外部类本身,外部类的实例成员属于对象,故静态内部类不直接访问实例外部类,但可以通过在内部类创建外部类对象来进行访问

目标:静态内部类的研究(了解语法即可)什么是静态内部类?有static修饰,属于外部类本身,会加载一次。静态内部类中的成分研究:类有的成分它都有,静态内部类属于外部类本身,只会加载一次所以它的特点与外部类是完全一样的,只是位置在别人里面而已。外部类=宿主内部类=寄生静态内部类的访问格式:外部类名称.内部类名称静态内部类创建对象的格式:外部类名称.内部类名称 对象名称 = new 外部类名称.内部类构造器;静态内部类的访问拓展:静态内部类中是否可以直接访问外部类的静态成员?可以的,外部类的静态成员只有一份,可以被共享!静态内部类中是否可以直接访问外部类的实例成员?不可以的,外部类的是成员必须用外部类对象访问!!
小结:静态内部类属于外部类本身,只会加载一次所以它的特点与外部类是完全一样的,只是位置在别人里面而已。

2.4 实例内部类

实例内部类特点

  • 无static修饰的内部类,属于外部类对象的。
  • 宿主:外部类对象。

内部类的使用格式

 外部类.内部类。 // 访问内部类的类型都是用 外部类.内部类

实例内部类创建对象格式

外部类.内部类 变量 = new 外部类构造器.new 内部类构造器;
  • 拓展1:实例内部类不能定义静态成员。

  • 拓展2:实例内部类可以直接访问外部类的私有和静态成员。

    案例演示

public class InnerClassDemo02 {public static void main(String[] args) {//  宿主:外部类对象。// Outer02 out = new Outer02();// 创建内部类对象。Outer02.Inner02 in = new Outer02().new Inner02("张三");in.showName();}
}class Outer02{// 实例内部类,属于外部类对象的。// 拓展:实例内部类不能定义静态成员。public class Inner02{// 这里面的东西与类是完全一样的。private String name;public Inner02(String name) {this.name = name;}public void showName(){System.out.println(this.name);}}
}
总结

get 与set 方法属于实例方法

实例内部类可以定义实例变量和实例方法

用反证法理解:实例内部类不能定义静态成员;静态成员包括静态变量和静态方法,静态成员只能加载一次,假设实例内部类可以加载静态成员,实例内部类属于外部对象,如果外部类对象有一千个,而实例内部类会加载一千次,里面的静态成员也要跟着内部类加载一千次,而静态成员只能加载一次,矛盾了,所以就禁止在实例内部类定义静态成员;而常量固定只有一份,不会岁实例内部类的加载而加载,故可以定义常量

实例内部类的创建格式:先用外部类构造器创建外部类对象,再用外部类对象来new内部类对象

理解实例内部类可以访问外部类的实例成员 :实例内部类属于外部类对象,外部类对象属于外部类对象,故实例内部类的所有东西都可以访问外部类对象

目标:内部类_实例内部类(成员内部类)(了解语法为主)什么是实例内部类:无static修饰的内部类,属于外部类的每个对象的,跟着对象一起加载的。实例内部类的成分特点:实例内部类中不能定义静态成员,其他都可以定义。可以定义常量。实例内部类的访问格式:外部类名称.内部类名称。创建对象的格式:外部类名称.内部类名称 对象名称 = new 外部类构造器.new 内部构造器;拓展:实例内部类中是否可以直接访问外部类的静态成员?可以的,外部类的静态成员可以被共享访问!实例内部类中是否可以访问外部类的实例成员?可以的,实例内部类属于外部类对象,可以直接访问当前外部类对象的实例成员!
小结:实例内部类属于外部类对象,需要用外部类对象一起加载,实例内部类可以访问外部类的全部成员!

2.5 实例内部类面试题

请在?地方向上相应代码,以达到输出的内容

注意:内部类访问外部类对象的格式是:外部类名.this

public class Demo05 {public static void main(String[] args) {Body.Heart heart = new Body().new Heart();heart.jump();}
}class Body {	// 身体private int weight = 30;// 在成员位置定义一个类class Heart {private int weight = 20;public void jump() {int weight = 10;System.out.println("心脏在跳动 " + ?);	// 10System.out.println("心脏在跳动 " + ?);	// 20System.out.println("心脏在跳动 " + ?);	// 30}}
}

2.6 局部内部类

  • 局部内部类 :定义在方法中的类。

定义格式:

class 外部类名 {数据类型 变量名;修饰符 返回值类型 方法名(参数列表) {// …class 内部类 {// 成员变量// 成员方法}}
}

局部内部类编译后仍然是一个独立的类,编译后有$还有一个数字。Chinese$1Chopsticks.class

总结

成员变量不能定义在方法里

目标:局部内部类。(几乎不用)定义在方法中,在构造器中,代码块中,for循环中定义的内部类
就是局部内部类。局部内部类中的成分特点:只能定义实例成员,不能定义静态成员可以定义常量的。
小结:局部内部类没啥用。

2.7 匿名内部类【重点】

2.7.1 概述

匿名内部类 :是内部类的简化写法。它的本质是一个带具体实现的 父类或者父接口的 匿名的 子类对象
开发中,最常用到的内部类就是匿名内部类了。

2.7.2 引入

实际上,如果我们希望定义一个只要使用一次的类,就可考虑使用匿名内部类。匿名内部类的本质作用

是为了简化代码

之前我們使用接口时,似乎得做如下几步操作:

  1. 定义子类
  2. 重写接口中的方法
  3. 创建子类对象
  4. 调用重写后的方法
interface Swim {public abstract void swimming();
}// 1. 定义接口的实现类
class Student implements Swim {// 2. 重写抽象方法@Overridepublic void swimming() {System.out.println("狗刨式...");}
}public class Demo07 {public static void main(String[] args) {// 3. 创建实现类对象Student s = new Student();// 4. 调用方法s.swimming();}
}

我们的目的,最终只是为了调用方法,那么能不能简化一下,把以上四步合成一步呢?匿名内部类就是做这样的快捷方式。

2.7.3 匿名内部类前提和格式

匿名内部类必须继承一个父类或者实现一个父接口

匿名内部类格式

new 父类名或者接口名(){// 方法重写@Override public void method() {// 执行语句}
};

2.7.4 使用方式

以接口为例,匿名内部类的使用,代码如下:

创建匿名内部类,并调用:GUI做界面

interface Swim {public abstract void swimming();
}public class Demo07 {public static void main(String[] args) {// 使用匿名内部类new Swim() {@Overridepublic void swimming() {System.out.println("自由泳...");}}.swimming();// 接口 变量 = new 实现类(); // 多态,走子类的重写方法Swim s2 = new Swim() {@Overridepublic void swimming() {System.out.println("蛙泳...");}};s2.swimming();s2.swimming();}
}
总结

用接口直接new对象,然后重写接口的接口方法

在这里插入图片描述

对象回调,对象传递值,然后反过来调用对象的方法


在这里插入图片描述

在这里插入图片描述

可以直接省略创建变量,直接new对象,作为方法的参数(方法的入参);整个匿名内部类创建的对象作为参数进行传递

2.7.5 匿名内部类的特点

  1. 定义一个没有名字的内部类
  2. 这个类实现了父类,或者父类接口
  3. 匿名内部类会创建这个没有名字的类的对象

2.7.6 匿名内部类的使用场景

通常在方法的形式参数是接口或者抽象类时,也可以将匿名内部类作为参数传递。代码如下:

interface Swim {public abstract void swimming();
}public class Demo07 {public static void main(String[] args) {// 普通方式传入对象// 创建实现类对象Student s = new Student();goSwimming(s);// 匿名内部类使用场景:作为方法参数传递Swim s3 = new Swim() {@Overridepublic void swimming() {System.out.println("蝶泳...");}};// 传入匿名内部类goSwimming(s3);// 完美方案: 一步到位goSwimming(new Swim() {public void swimming() {System.out.println("大学生, 蛙泳...");}});goSwimming(new Swim() {public void swimming() {System.out.println("小学生, 自由泳...");}});}// 定义一个方法,模拟请一些人去游泳public static void goSwimming(Swim s) {s.swimming();}
}
总结

为按钮设置单击事件监听器,查看单击事件监听器的源码可得,参数需要一个接口,而接口创建一个接口的匿名内部类

第三章 包和权限修饰符

3.1 包

包我们每天建的项目就是在一个目录下,我们每次都会建立一个包,这个包在磁盘下其实就是一个目录。包是用来分门别类的管理技术,不同的技术类放在不同的包下,方便管理和维护。

在IDEA项目中,建包的操作如下:
在这里插入图片描述

包名的命名规范

路径名.路径名.xxx.xxx
// 例如:com.itheima.oa
  • 包名一般是公司域名的倒写。例如:黑马是www.itheima.com,包名就可以定义成com.itheima.技术名称。
  • 包名必须用”.“连接。
  • 包名的每个路径名必须是一个合法的标识符,而且不能是Java的关键字。
总结

必须在类名的最上面

注意:相同包下的类可以直接访问。不同包下的类必须导包,才可以使用!导包格式:import 包名.类名;//  相同包下的类可以直接访问。//  不同包下的类必须先导包才可以使用!

3.2 权限修饰符

在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限,我们之前已经学习过了public 和 private,接下来我们研究一下protected和缺省(default默认)修饰符的作用。

  • public:公共的,所有地方都可以访问。
  • protected:当前类 ,当前包,当前类的子类可以访问。
  • 缺省(没有修饰符):当前类 ,当前包可以访问。
  • private:私有的,当前类可以访问。
    public > protected > 缺省 > private
总结

当前类的子类:具有继承关系,例public class Zi extends Fu,子类就能访问父类的protected修饰的成员

3.3 不同权限的访问能力

public protected 缺省(空的) private
同一类中
同一包中的类
不同包的子类
不同包中的无关类

可见,public具有最大权限。private则是最小权限。

编写代码时,如果没有特殊的考虑,建议这样使用权限:

  • 成员变量使用private ,隐藏细节。
  • 构造方法使用public ,方便创建对象。
  • 成员方法使用public ,方便调用方法。

小贴士:不加权限修饰符,就是default权限

第四章 Object类

4.1 概述

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

如果一个类没有特别指定父类, 那么默认则继承自Object类。例如:

public class MyClass /*extends Object*/ {// ...
}

根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个。今天我们主要学习其中的2个:

  • public String toString():返回该对象的字符串表示。
  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

4.2 toString方法

方法摘要

  • public String toString():返回该对象的字符串表示。

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

覆盖重写

如果不希望使用toString方法的默认行为,则可以对它进行覆盖重写。例如自定义的Person类:

public class Person {  private String name;private int age;@Overridepublic String toString() {return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';}// 省略构造器与Getter Setter
}

在IntelliJ IDEA中,可以点击Code菜单中的Generate...,也可以使用快捷键alt+insert,点击toString()选项。选择需要包含的成员变量并确定。如下图所示:
在这里插入图片描述

小贴士: 在我们直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法。

总结

因为所有的类默认继承object ,所有就有toString的方法

在ide右键生成选择toString可以自动重写子类的toString方法

目标:常用API的学习-Object类的toString方法使用详解。

引入
包:java.lang.Object
Object类是Java中的祖宗类。
一个类要么默认继承了Object类,要么间接继承了Object类。
Object类的方法是一切子类都可以直接使用的,所以我们要学习Object类的方法。

Object类的常用方法:
(1)public String toString():
– 默认是返回当前对象在堆内存中的地址信息:
com.itheima._12Object类的详细使用.Student@735b478
– 默认的地址信息格式:类的全限名@内存地址
– 直接输出对象名称,默认会自动调用toString()方法,所以输出对象toString()调用可以省略不写
– 开发中直接输出对象,默认输出对象的地址其实是毫无意义的。
开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息!
所以父类toString()方法存在的意义就是为了被子类重写,以便
返回对象的内容信息输出!!
小结:
toString()默认是返回当前对象在堆内存中的地址信息:
开发中输出对象变量,更多的时候是希望看到对象的内容数据而不是对象的地址信息!
所以父类toString()方法存在的意义就是为了被子类重写,重写toString可以看到对象的内容信息。
重写Object的toString()以便返回对象的内容数据
谁调用this就指谁,例 zs1.equals(zs2),是zs1调用this ,this就指zs1

基础类型用==来进行比较,string类型用equals来进行比较

4.3 equals方法

方法摘要

  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。

默认地址比较

如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。

对象内容比较

如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。例如:

import java.util.Objects;public class Person {	private String name;private int age;@Overridepublic boolean equals(Object o) {// 如果对象地址一样,则认为相同if (this == o)return true;// 如果参数为空,或者类型信息不一样,则认为不同if (o == null || getClass() != o.getClass())return false;// 转换为当前类型Person person = (Person) o;// 要求基本类型相等,并且将引用类型交给java.util.Objects类的equals静态方法取用结果return age == person.age && Objects.equals(name, person.name);}
}

这段代码充分考虑了对象为空、类型一致等问题,但方法内容并不唯一。大多数IDE都可以自动生成equals方法的代码内容。在IntelliJ IDEA中,可以使用Code菜单中的Generate…选项,也可以使用快捷键alt+insert,并选择equals() and hashCode()进行自动代码生成。如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

tips:Object类当中的hashCode等其他方法,今后学习。

总结
if(this. name. equals(zs2. name)&& this. age==zs2. age
&& this. sex==zs2. sex){
return true;

上面的代码可以简化为下面的代码

return this. name. equals(zs2. name)&& this. age==zs2. age
&& this. sex==zs2. sex);

用this.xxx可以调用引用类型

(2)public boolean equals(Object o):
– 默认是比较两个对象的地址是否相同。相同返回true,反之。
– 直接比较两个对象的地址是否相同完全可以用“==”替代equals。
所以equals存在的意义是为了被子类重写,以便程序员可以
自己来定制比较规则。
– 需求:只要两个对象的内容一样,我们就认为他们是相等的。
小结:
equals存在的意义是为了被子类重写,以便程序员可以
自己来定制比较规则。

第五章 Objects类

Objects类是对象工具类,它里面的的方法都是用来操作对象的。

5.1 equals方法

在刚才IDEA自动重写equals代码中,使用到了java.util.Objects类,那么这个类是什么呢?

JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashcode、返回对象的字符串表示形式、比较两个对象。

在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题。方法如下:

  • public static boolean equals(Object a, Object b):判断两个对象是否相等。

我们可以查看一下源码,学习一下:

public static boolean equals(Object a, Object b) {  return (a == b) || (a != null && a.equals(b));  

5.2 isNull

static boolean isNull(Object obj) 判断对象是否为null,如果为null返回true。

Student s1 = null;
Student s2 = new Student("蔡徐坤", 22);// static boolean isNull(Object obj) 判断对象是否为null,如果为null返回true
System.out.println(Objects.isNull(s1)); // true
System.out.println(Objects.isNull(s2)); // false
总结

在idea 菜单栏中的build 中build Module 重新编译模块可以解决底层无法识别代码的情况

用空来调用方法就会出现空指针异常

is null相当于 ==null

目标:Objects类的使用。Objects类与Object还是继承关系。
Objects类是从JDK 1.7开始之后才有的。Objects的方法:1.public static boolean equals(Object a, Object b)-- 比较两个对象的。-- 底层进行非空判断,从而可以避免空指针异常。更安全!!推荐使用!!public static boolean equals(Object a, Object b) {return a == b || a != null && a.equals(b);}2.public static boolean isNull(Object obj)-- 判断变量是否为null ,为null返回true ,反之!

第六章 Date类

6.1 Date概述

java.util.Date`类 表示特定的瞬间,精确到毫秒。

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数

  • public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

tips: 由于中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8小时的时区,当格林尼治标准时间为0:00时,东八区的标准时间为08:00。

简单来说:使用无参构造,可以自动设置当前系统时间的毫秒时刻;指定long类型的构造参数,可以自定义毫秒时刻。例如:

import java.util.Date;public class Demo01Date {public static void main(String[] args) {// 创建日期对象,把当前的时间System.out.println(new Date()); // Tue Jan 16 14:37:35 CST 2020// 创建日期对象,把当前的毫秒值转成日期对象System.out.println(new Date(0L)); // Thu Jan 01 08:00:00 CST 1970}
}

tips:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。

总结

创建对象要先看构造器

看官方的api文档只要是过时的,直接淘汰,不去学习,只要是拼出来,代码有画线删除,就是过时的代码

目标:Date日期类的使用。Java是面向对象的,会用一个类代表一个事物。
Date类在Java中代表的是系统当前此刻日期时间对象。Date类:包:java.util.Date。构造器:-- public Date():创建当前系统的此刻日期时间对象。-- public Date(long time):方法:-- public long getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来走过的总的毫秒数。时间记录的两种方式:a.Date日期对象。b.时间毫秒值:从1970-01-01 00:00:00开始走到此刻的总的毫秒值。 1s = 1000ms小结:Date可以代表系统当前此刻日期时间对象。时间记录的两种方式:Date日期对象。时间毫秒值:从1970-01-01 00:00:00开始走到此刻的总的毫秒值。 1s = 1000ms
拓展:时间毫秒值的作用。时间毫秒值可以用于做时间的计算:例如代码的执行性能分析。

6.2 Date常用方法

Date类中的多数方法已经过时,常用的方法有:

  • public long getTime() 把日期对象转换成对应的时间毫秒值。
  • public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象

示例代码

public class DateDemo02 {public static void main(String[] args) {//创建日期对象Date d = new Date();//public long getTime():获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值//System.out.println(d.getTime());//System.out.println(d.getTime() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");//public void setTime(long time):设置时间,给的是毫秒值//long time = 1000*60*60;long time = System.currentTimeMillis();d.setTime(time);System.out.println(d);}
}

小结:Date表示特定的时间瞬间,我们可以使用Date对象对时间进行操作。

总结

可以在统计时间的开始时,创建date 对象.getTime 来记录当前的时间;结束时创建date 对象.getTime 来记录当前的时间,两者相减就是经过的时间

1000毫秒等于1秒,如果要获取double类型的,就除以带.0的数值,就能显示出来小数点后面的数字(保留小数)

因为时间毫秒值是1970-1-1 0:0:0到现在,每一个毫秒值就确定一个具体的时间,所有能用具体的毫秒值来转为现在的时间

目标:Date类的有参数构造器的使用。构造器:-- public Date():创建当前系统的此刻日期时间对象。-- public Date(long time):把时间毫秒值转换成日期对象。
流程:Date日期对象 -> getTime() -> 时间毫秒值时间毫秒值 -> new Date(时间毫秒值) -> Date日期对象
小结:public Date(long time):把时间毫秒值转换成日期对象。
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 从0到1用云开发+vant组件实现酒店小程序全栈开发(前台+后台),毕设经验分享,避坑指南!【点赞+收藏】

    第一篇:系统介绍及前台功能展示前言系统介绍功能展示前台(1)订房(2)进入服务页及连wifi(3)点餐(4)报名活动(5)旅游攻略推荐(6)我的订单(7)彩蛋 前言 花了1个半月做了我的毕设——酒店小程序,每天心情都随着bug的调试起伏不定。期间,踩了不少坑,多亏各种经验贴…...

    2024/4/28 12:50:50
  2. (2)你真的会用Chrome devtool吗?

    本文首发于我的个人博客: https://teobler.comPerformance Performance API 有的时候我们可能会想测试一下用户的某一个操作要消耗多少时间,而通常一般人会这么做: const start = new Date().getTime();// do your workconst end = new Date().getTime();console.log(end - …...

    2024/4/20 3:06:00
  3. 浅谈winXP中硬件配置文件的妙用

    转载自品略图书馆 http://www.pinlue.com/article/2020/05/2309/5610594646410.html说起硬件配置文件,有很多朋友都忽略了它在Windows XP中所起的作用,其实如果利用得当的话,可以大大提高系统的工作效率。什么是硬件配置文件所谓硬件配置文件,是指在启动计算机时告诉Window…...

    2024/4/16 23:55:57
  4. Leetcode-14 最长公共前缀

    一、题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: [“flower”,“flow”,“flight”] 输出: “fl” 示例 2: 输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。 说明: 所有输入…...

    2024/4/16 23:56:09
  5. 实验电路的放大器伴侣:LMV358

    在很多的一些基于电路板的电子实验中,常常需要将某一信号进行放大若干倍,然后再输出。下面这个机遇LMV358的放大器就是用来节省面包板空间,而独立提供一定增益的放大器模块的。01设计实验电路1 使用LMV358可以工作在单电源5V下。它具有两路OPAMP。设计原则:板内集成中点电压…...

    2024/4/16 23:55:51
  6. mysql uuid查询利用不重复

    mysql批量插入不重复uuid数据(insert select 语法)问题描述:1. 通过select replace(uuid(), -, ) , 生成的uuid全部重复。(可能是navicat执行顺序的问题)2. select uuid() ,生成的uuid不重复。但是有“-”且长度太长,不符合要求。完美解决:修改为:select md5(uuid())...

    2024/4/18 1:47:01
  7. VirtualBox安装和配置虚拟主机

    1、 安装VirtualBox 详细看https://blog.csdn.net/qinjava/article/details/106025928 2新建3、 4、分配内存大小5、选择硬盘大小6、创建虚拟硬盘7、设置网络8、启动,选择linux镜像选择install centOS 79、设置密码完成后启动解决ifconfig command not found 问题(如果没看见…...

    2024/4/18 18:46:37
  8. git 使用笔记 branch和tag

    branch指的是分支tag指的是快照如果创建了一个软件仓库,可以一边修改一遍打tag;如果基于某个代码有两种不同的修改这就是两个branch了.显示当前仓库的所有分支git branch显示某个分支的所有taggit tag切换到某个分支git checkout -b branch_name tag_name切换到某个taggit chec…...

    2024/4/23 16:04:43
  9. 单片机74HC154译码器应用

    单片机74HC154译码器应用 硬件连接:代码: #include <reg52.h> #define uint unsigned int #define uchar unsigned charvoid Delay(uint x) {uchar i;while(x--){for(i=0;i<120;i++);} }void main() {while(1){P2 = (P2+1)%16;Delay(50);} }...

    2024/4/25 18:21:18
  10. python flask 跨域问题 解决方法

    问题网页上(client)有一个ajax请求,Flask sever是直接返回 jsonify。然后ajax就报错:No Access-Control-Allow-Origin header is present on the requested 原因ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法…...

    2024/4/23 16:04:46
  11. WPF学习笔记——7)Canvas面板

    Canvas面板是一种根据具体坐标信息来确定元素布局位置的一种容器,是一种轻量化的布局容器。1、Canvas面板首先我们新建一个WPF程序,在默认的XAML中将原始的Grid布局容器删除。从工具箱中拖入Canvas控件进入窗口,去掉Canvas的长宽限制。如果我们这时把按钮组件拖入Canvas面板…...

    2024/4/23 5:24:24
  12. ZBLG:非递归zipbomb炸弹,比例为28000000:1

    分享一个有趣的工具 ZBLG:非递归zipbomb炸弹,比例为28000000:1 存储有价,数据无价,谨慎使用,请勿用于非法用途。声明: 本文为机翻,译自:https://www.bamsoftware.com/hacks/zipbomb/ 作者:David Fifield Email:david@bamsoftware.com 一切版权原作者所有。 2019-07-0…...

    2024/4/23 16:04:36
  13. 暴力的美化——滑窗的进阶(最小覆盖子串)

    给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例:输入: S = “ADOBECODEBANC”, T = “ABC” 输出: “BANC”说明:如果 S 中不存这样的子串,则返回空字符串 “”。 如果 S 中存在这样的子串,我们保证它是唯一的答案。首先,根据…...

    2024/4/23 16:04:38
  14. ClickHouse 简单介绍包括分布式表,子表,ttl,主键

    介绍ClickHouse是一款由俄罗斯IT人员开发的一款开源的列式数据库管理系统。clickehouse是一款OLAP分析型数据库,以快取胜。至于为什么快,网络上各位大牛已经做了介绍,此处不再叙述。本文主要从使用角度来介绍关于CH的分布式表,ttl,主键等信息。分布式表分布式表是一种逻辑…...

    2024/4/28 19:23:38
  15. 泰坦尼克号数据分析案例实战

    这是一个很经典的案例,很多博主都写过,对,就是它:泰坦尼克号生存率的分析,它是kaggle上的一道题,通过船上乘客的信息分析和建模,预测哪些乘客得以生还。我们就非常粗暴地拿这个数据集做一个简单的分析好了。使用工具:Excel (对,就是这么简单粗暴)一、明确目的1912年…...

    2024/5/2 17:56:23
  16. 从零开始php学习记录(二) --php标记

    新手老司机上路,从php标签开始入手。 标准写法<?php ?> 短标记写法 <? ?> 短标记写法官方的文档说不鼓励这种写法 支持短标记写法得 配置下php.ini 中的short_open_tag 或者在编译 PHP 时使用了配置选项 --enable-short-tags 时才能使用短标记 这些一看就懂,…...

    2024/4/28 21:09:55
  17. javaee笔记(8)JSTL&EL

    EL表达式 EL的全称是表达式语言(Expression Language,EL),它是JSP2.0新增加的技术规范。引入EL表达式语言目的之一是为JSP页面计算、访问和打印数据提供方便,尽可能减少JSP页面中的Java代码,使JSP页面更简洁、更易于开发和维护。 EL表达式的基本语法前者为即时计算。后者为延…...

    2024/4/27 22:51:32
  18. Python基本数据类型

    1. ⼏个概念 1.1 表达式表达式,是由数字、算符、数字分组符号(括号)、⾃由变量和约束变量等 以能求得数值的有意义排列⽅法所得的组合 表达式特点 表达式⼀般仅仅⽤于计算⼀些结果,不会对程序产⽣实质性的影响 如果在交互模式中输⼊⼀个表达式,解释器会⾃动将表达式的结果…...

    2024/4/29 0:12:56
  19. 棋盘覆盖问题-分治法

    什么是棋盘覆盖方法?我去找其他人的解释,恰恰发现一个矛盾的地方,就是看解释比较难理解,但是看解决棋盘覆盖的过程,就很容易理解什么是棋盘覆盖问题了。所以这里就不解释了,直接给一个解决16*16的棋盘解决过程,看完过程,相信你也理解了什么是棋盘问题了。如下:首先给出…...

    2024/4/29 0:23:44
  20. mybatis请求与返回

    mybatis 返回是数据库字段 condition请求是实体变量...

    2024/4/28 16:09:54

最新文章

  1. 跳表(Java 实现)

    public abstract class SkipListUtil {/*** 按照规则生成随机层数&#xff0c;层数越大&#xff0c;概率越低** return*/public static int generateRandomLevel() {int result SkipListConfig.MIN_LEVEL;Random random new Random();while (random.nextInt(SkipListConfig.M…...

    2024/5/3 4:25:17
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 不重复数字

    map就感觉很舒服 题目描述 给定 n 个数&#xff0c;要求把其中重复的去掉&#xff0c;只保留第一次出现的数。 输入格式 本题有多组数据。 第一行一个整数 T&#xff0c;表示数据组数。 对于每组数据&#xff1a; 第一行一个整数 n。 第二行 n 个数&#xff0c;表示给定的数。…...

    2024/5/2 5:09:07
  4. Windows 2008虚拟机安装、安装VM Tools、快照和链接克隆、添加硬盘修改格式为GPT

    一、安装vmware workstation软件 VMware workstation的安装介质&#xff0c;获取路径&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1AUAw_--yjZAUPbsR7StOJQ 提取码&#xff1a;umz1 所在目录&#xff1a;\vmware\VMware workstation 15.1.0 1.找到百度网盘中vmwa…...

    2024/5/1 9:48:28
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57