• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

青携纸笔携香

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Java第十四课---instance of 、类型转换与static关键字

instanceof和类型转换

 

instanceof (类型转换) 引用类型,判断一个对象是什么类型~

 

package com.oop;
​
import com.oop.demo06.Person;
import com.oop.demo06.Student;
import com.oop.demo06.Teacher;
import org.omg.CORBA.Object;
​
import java.util.Objects;
​
public class Application {
   public static void main(String[] args) {
​
       //System.out.println(x instanceof y);//能不能编译通过(判处xy是否存在父子关系)
​
       //Object>String
       //Object>Person>Teacher
       //Object>Person>Student
       java.lang.Object object = new Student();
​
       System.out.println(object instanceof Student);//true
       System.out.println(object instanceof Person);//true
       System.out.println(object instanceof java.lang.Object);//true
       System.out.println(object instanceof Teacher);//False
       System.out.println(object instanceof String);//False
       System.out.println("============================");
       Person person = new Student();
​
       System.out.println(person instanceof Student);//true
       System.out.println(person instanceof Person);//true
       System.out.println(person instanceof java.lang.Object);//true
       System.out.println(person instanceof Teacher);//False
       //System.out.println(person instanceof String);编译报错
       System.out.println("============================");
      Student student = new Student();
​
       System.out.println(student instanceof Student);//true
       System.out.println(student instanceof Person);//true
       System.out.println(student instanceof java.lang.Object);//true
       //System.out.println(student instanceof Teacher);编译报错
       //System.out.println(person instanceof String);编译报错
​
  }
}
​

 

 

类型转换

 

  1. 父类引用指向子类的对象

  2. 把子类转换为父类,向上转型

  3. 把父类转换为子类,向下转型:强制转换

  4. 方便

  5. 方法的调用,减少重复的代码!简介

 

package com.oop.demo06;
​
public class Person {
   public void run(){
       System.out.println("run");
  }
}
=====================================
   package com.oop.demo06;
​
public class Student extends Person{
public void go(){
    System.out.println("go");
}
}
=====================================
   package com.oop;
​
​
import com.oop.demo06.Person;
import com.oop.demo06.Student;
​
public class Application {
   public static void main(String[] args) {
       //类型之间的转换:父(高) 子(低)
       Person obj = new Student();
​
       //student将这个对象转换为Student类型,我们就可以使用Student类型的方法了!
​
       Student student = (Student) obj;
       student.go();//go
       //相当于((Student)obj).go();
​
       //子类转换为父类,可能丢失自己本来的一些方法!
       Student student1 = new Student();
       student.go();//go
       Person person=student;
​
  }
}
​

 

static关键字
package com.oop.demo07;
​
//static:
public class Student {
   private static int age;//静态变量 多线程!
   private  double score;//非静态变量
​
   public void run(){
         go();
  }
   public static void go(){
​
  }
​
   public static void main(String[] args) {
       Student s1 = new Student();
       System.out.println(Student.age);
       //System.out.println(Student.score);无法直接调用
       System.out.println(s1.age);
       System.out.println(s1.score);
​
       //run();无法直接调用
       new Student().run();
       go();
       Student.go();
  }
}
=======================================
package com.oop.demo07;
​
public class Person {
​
   //2:赋初始值
  {
       //代码块(匿名代码块)
       System.out.println("匿名代码块");
  }
​
   //1 :只执行一次~
   static {
       //静态代码块
       System.out.println("静态代码块");
  }
​
   //3
   public Person(){
       System.out.println("构造方法");
  }
​
   public static void main(String[] args) {
       Person person1 = new Person();
       System.out.println("==========");
       Person person2 = new Person();
  }
}
=========================================
package com.oop.demo07;
//静态导入包
import static java.lang.Math.random;
import static java.lang.Math.PI;
​
​
public class Test {
   public static void main(String[] args) {
       System.out.println(random());
       System.out.println(PI);
  }
}
   

 

posted on 2022-03-09 21:27  青携纸笔携香  阅读(91)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3