网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 前端脚本 » 正文

java类,Java类加载机制

2020-4-15 13:56:40 | 作者:老铁SEO | 0个评论 | 人浏览

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


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


  publicclassPerson{


  privateStringname;//属性:姓名


  privateintheight;//属性:身高


  privateintweight;//属性:体重


  publicPerson(){}


  publicPerson(Stringname,intheight,intweight){


  this.name=name;


  this.height=height;


  this.weight=weight;


  }


  //...somemethods...


  publicvoiddoSth(){//行为:


  //...dosomething


  }}


  Java中的类


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


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


  publicclassDog{


  Stringbreed;intage;Stringcolor;voidbarking(){


  }


  voidhungry(){


  }


  voidsleeping(){


  }}


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


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


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


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


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


  Java类加载机制


  在jdk1.2以后,类加载是通过委托来完成的,这意味着如果ClassLoader不能找到类,它会请求父代ClassLoader来执行此项任务,所有ClassLoaders的根是系统ClassLoader,它会以缺省方式装入类--即,从本地文件系统。详细见参考资料


  说实话,你这个问题在这里提出来,篇幅不够,要解释这个问题要长篇大论,而且网上资料甚多,建议你买本书《深入java虚拟机》学习,里面你可以很全面的了解类装载机制。


  java类是什么


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


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


  publicclassPerson{


  privateStringname;//属性:姓名


  privateintheight;//属性:身高


  privateintweight;//属性:体重


  publicPerson(){}


  publicPerson(Stringname,intheight,intweight){


  this.name=name;


  this.height=height;


  this.weight=weight;


  }


  //...somemethods...


  publicvoiddoSth(){//行为:


  //...dosomething


  }}


  Java中的类


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


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


  publicclassDog{


  Stringbreed;intage;Stringcolor;voidbarking(){


  }


  voidhungry(){


  }


  voidsleeping(){


  }}


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


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


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


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


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


  java类与对象


  类:类很好理解,听说过人类,哺乳类,爬虫类这些名词吧,是的,java中的类也可以这么理解


  类就像是用来描述一样东西的总称,例如人类:有眼睛,嘴巴,鼻子,耳朵,身体等的东西


  我们称具有这些特征的东西为人类,用java表示:


  publicstaticclassperson//建立一个叫person的类,我们可以把它看成人类


  {


  Stringmouse;


  Stringeyes;


  Stringear;


  Stringname;


  Stringtall;


  /*上面的定义的东西就是person人类的特征,有嘴巴,眼睛,耳朵,名字,身高*/


  }


  对象:对象是类的具体表现,它具有类的特征。可以这样理解,上面说类,可以理解为人类,那么对


  象就相当于一个具体的人,例如我叫小明,那么我是人类对吧,我就是这人类的具体表现。


  她叫小娜是个人,属于人类,你也一样。用java表示:


  personxm=newperson();//类+名字=new+类+();这就创建了一个小明xm这个人了


  /*上面这种创建对象的写法是不是很像以前输入语句的写法


  Scannersc=newScanner();没错,其实这也是创建了一个对象,只是以前不知道为什么这样写而已


  */


  **************************************************************************************


  那么我用一段完整的代码表现一下吧:


  packagespy1;//我这个包的名字,如果你的包名不是这个改一下,改为你的package包名


  publicclasshello2{//我这个类的名字,如果你的类名不是这个改一下,改为你class类名


  publicstaticvoidmain(String[]args){


  personxm=newperson();//新建一个xm对象,现在xm这个对象有person类的所有特征


  xm.mouse="红色";//xm对象有嘴巴mouse


  xm.eyes="水汪汪的";//xm对象有嘴巴眼睛eyes


  xm.ear="2只大大的耳朵";//xm对象有耳朵ear


  xm.name="小明";//xm对象有名字name


  xm.tall="170cm";//xm对象有身高tall


  System.out.print(xm.mouse+xm.eyes+xm.ear+xm.name+xm.tall);//输出对象xm的各种特征值


  }


  publicstaticclassperson//注意,类是写在main主函数外的,写在整个hello2类当中,写法和方法的写法很类似


  {


  Stringmouse;


  Stringeyes;


  Stringear;


  Stringname;


  Stringtall;


  }


  }


  java类名命名规范


  在java规范中没有限制类名的长度,但是系统本身会限制。


  下面是详细说明:


  java这个语言本身:没有限制。


  java虚拟机本身的规范:


  Thelengthoffieldandmethodnames,fieldandmethoddescriptors,


  andotherconstantstringvalues(includingthosereferencedby


  ConstantValue(§4.7.2)attributes)islimitedto65535charactersby


  the16-bitunsignedlengthitemoftheCONSTANT_Utf8_infostructure


  (§4.4.7).<


  >


  在java虚拟机看来类名本生也是字符串,所以java虚拟机规范是限制为65535


  3.系统本身


  Linux文件名的长度限制是255个字符


  windows下完全限定文件名必须少于260个字符,目录名必须小于248个字符。

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    相关推荐