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个字符。