Class study

Class是所有java类的类,就像所有各种各样的人有一个类Person.
Class中含有这个类的一些信息,像有什么方法,属性或继承了什么接口等等。
有三种获得Class的方法
1. Class c=Class.forName("java.lang.String");用的比较多
2. Class c=String.class;
3. String str="abc"; Class c=str.getClass();
String.class其实是java虚拟机中的字节码。
有九种预定义的Class类型:
boolean, byte, char, short, int, long, float,double and void.
像框架早写好了,我们写的程序能调用或被调用就是利用反射的原理得知我们在开源框架基础上写的类的一些信息。
int.class==Integer.TYPE 返回true
int.class==Integer.class 返回false
数组也有其Class类型,System.out.println(int[].class);
结果:class [I.

参考信息:
public final class Class<T>extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement

Class has no public constructor. Instead Class objects are constructed automatically by the Java Virtual Machine as classes are loaded and by calls to the defineClass method in the class loader.
翻译: Class没有公用的构造函数,反而,当classes在类加载器中被加载并且调用 defineClass方法时,Class对象会由java虚拟机自动的构造。

欢迎交流指正。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#include<iostream> #include <string> using namespace std; class Person {protected:string name; int age; public: Person(string n,int a):name(n),age(a){} virtual void display() /*虚函数显示信息,实现多态性*/ {cout<<"姓名:"<<name<<endl; cout<<"年龄:"<<age<<endl;} }; class Teacher:public Person {private:string title; string course; public: Teacher(string n,int a,string t,string c):Person(n,a){title=t;course=c;} void display() {Person::display(); cout<<"职称:"<<title<<endl; cout<<"担任课程:"<<course<<endl;} }; class Information:virtual public Person {private:double height,weight; int id; public: Information(string n,int a,int i,double h,double w):Person(n,a),id(i),height(h),weight(w){} virtual void display() {Person::display(); cout<<"学号:"<<id<<endl; cout<<"身高:"<<height<<endl; cout<<"体重:"<<weight<<endl;} }; class Study:public Information {private:string major; int score; public: static int countS; /*静态成员数据说明*/ Study(string n,int a,int i,double h,double w,string m,int s):Person(n,a),Information(n,a,i,h,w),major(m),score(s){countS++;} void display() {Information::display(); cout<<"专业:"<<major<<endl; cout<<"分数:"<<score<<endl;} friend int operator-(Study c1,Study c2); /*友元函数,重载运算符实现分数差计算*/ void displays(){cout<<score;} }; int Study::countS = 0; int operator-(Study c1,Study c2) {return c1.score-c2.score;} int main() {Teacher A("文渊",45,"导师","计算机"); A.display(); cout<<endl; Study B("子博",19,226201324,178,65,"计算机科学与技术",90); Study C("皓轩",19,226203355,176,60,"计算机科学与技术",78); B.display(); cout<<endl; C.display(); cout<<endl; cout<<"有"<<Study::countS<<"个学生"<<endl; cout<<"分数相差"<<B-C<<endl; }找出错误
最新发布
05-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值