JAVA语言 获得对象类型

Python015

JAVA语言 获得对象类型,第1张

如题:

如果是使用 判断来验证的话 可以 使用

instanceof 关键字来做比较。

在java中 instanceof 归类为 比较运算符(特殊的)

是用来 判断 某个 对象 是否是某个类的实例(所谓的实例 就是指,这个对象 是 由 这个类 或这个类的子类 new 出来的)

如: 你自己定义了一个类 Person类,而你用这个类new(创建) 了一个对象p ( Person p=new Person() ) ,则 这个 时候 boolean flag=p instanceof Person

的结果是 true

注意 instanceof 左边的事对象,右边的事类名。

instanceof 关键字 的用法 基础的就是这样。

当然 如果 你比较的对象 不是 这个类 的实例,则结果当然是false了。

当时,此时 要注意了。

java中的类是可继承的。(在涉及到继承时候 用instanceof 就有意思了,要注意这里的情况)

如:

你写了 一个类 Student 继承了Person 类。

就像这样 class Student extends Person

那么 这个时候

Student 类的实例 如:Student stu=new Student()

此时 如果 你使用 stu instanceof Student ,那么 ,结果 当如是true的。

是吧?这个不会 有疑问吧? 有疑问 的话, 下面的就没法看了。

接着,再看这个:

Student stu1=new Student()

boolean result=stu1 instanceof Person

那么 result 的结果 是true 还是 false呢?

结果是 true

这 就是 在继承结构下,instanceof 要注意的地方。

我们 可以这样理解

Person p1=new Person()

p1 instanceof Person ---true ==>人(p1)是(Person)人类的 实例

Student stu2=new Student()

stu2 instanceof Student---->true ==>学生(stu2)是学生类(Student)的实例

stu2 instanceof Person --->true ==>学生也是人(继承结构)

补充 :

写的,不正确了。

应该写成

if(某变量 instanceof Integer){

//do some..

}else if(某某变量 instanceof Float){

//do some

}

Integer 是int的包装类

Float 是float的包装类

不知 是不是你想要的答案。

类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。举一个例子说明下类,比如Person(人)就是一个类,那么具体的某个人“张三”就是“人类”这个类的对象,而“姓名、身高、体重”等信息就是对象的属性,人的动作比如“吃饭、穿衣”等就是对象的方法。总之类就是有相同特征的事物的集合,而对象就是类的一个具体实例。同时类有多态和继承,例如“人类”可以分为“男人、女人”,“老人、小孩”那么“男人、女人”就是“人类”的子类等等。

Java语言中对类Person的定义往往如下:

public class Person {

private String name//属性:姓名

private int height//属性:身高

private int weight//属性:体重

public Person() {}

public Person(String name, int height, int weight) {

this.name = name

this.height = height

this.weight = weight

}

//... some methods...

public void doSth() { //行为:

//... do something

}}

Java中的类

类可以看成是创建Java对象的模板。

通过下面一个简单的类来理解下Java中类的定义:

public class Dog{

 String breed int age String color void barking(){

 }

 void hungry(){

 }

 void sleeping(){

 }}

一个类可以包含以下类型变量:

局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。

一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类的方法。

java中获取一个对象可以使用单例模式,实例如下:

Class A:

public class A {

 

 public void SayHello() {

  System.out.println("Say Hello From Class A")

 }

 public static A getInstanceOfA() {

  return new A()//A类中A的实例变量

 }

 private A(){}

}

Class B:

public class B {

 public static void main(String[] args) {

 A a = A.getInstanceOfA()//返回的是A类中的A的实例变量

  a.SayHello()//调用A中的SayHello方法

 }

}