黑马程序员技术交流社区
标题: 【石家庄校区】java初级-类的结构讲解 [打印本页]
作者: xiekai_sjz 时间: 2017-10-24 15:50
标题: 【石家庄校区】java初级-类的结构讲解
本帖最后由 xiekai_sjz 于 2017-10-24 15:50 编辑
许多同学在学习面向对象的时候,对类的属性,成员方法和构造方法的概念理解的不太清楚,下面就来讲解下java中类的结构。 类定义的一般格式如下: [类定义修饰符] class <类名>
{ //类体
[成员变量声明]
[构造函数]
[成员方法]
}
一. 类定义修饰符
修饰符:修饰符可以省略,也可以是public, protected, private, static, final,其中public、protected , private三个最多只能出现其中之一,可以与static, finaf组合起来修饰属性。
二. 成员变量声明
成员变量是类的属性,声明的一般格式为:
[变量修饰符] <成员变量类型> <成员变量名>
变量修饰符:public、protected、private、和默认(default)
三. 构造函数
构造函数是一个特殊的函数,java系统会默认自动为每个类生成一个缺省的不带任何参数的构造函数,在创建对象时系统会调用缺省的构造函数。如果程序中定义了构造函数,系统将不再提供该缺省的构造函数。构造函数具有如下特点:
(1)构造方法的方法名必须与类名相同,其它方法不能和类名相同。
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。
(4)构造方法无继承,无多态性。
(5)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。
(6)构造方法可以重载,以参数的个数,类型,或排列顺序区分。
使用无参数构造函数的例子
class Test { String name;
Test(){
name="aaa";
}
public static void main(String[] args){
Test t1=new Test();
System.out.println(t1.name);
t1.name="bbb";
System.out.println(t1.name);
}
}执行程序,输出结果如下:aaabbb 在程序中并没有对对象 t1的name变量进行赋值,而打印输出 t1.name 输出结果是“aaa”,此时Test类的构造函数中对name变量进行了初始化,输出的就是初始化的值;而对t1对象的name属性进行了赋值后,此时输出结果就是重新赋值后的值,即“bbb”。
使用有参数构造函数的例子
class Test {
String name;
Test(){
name="aaa";
}
Test(String myName){
this.name=myName;
}
public static void main(String[] args){
Test t1=new Test();
System.out.println(t1.name);
Test t2=new Test("bbb");
System.out.println(t2.name);
}
}执行程序,输出结果如下:aaabbb
四. 成员方法
方法定义的类的操作和行为,一般形式为:
[方法修饰符] <方法返回值类型> <方法名>([<参数列表>])
{
方法体
}
成员方法修饰符主要有public、private、protected、final、static、abstract和synchronized七种,前三种的访问权限、说明形式和含义与成员变量一致。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |