广州番禺Python, Java小班周末班培训
第四期线下Java, Python小班周末班已经开课了,培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析, Java中高级工程师培训。授课详情请点击:http://chipscoco.com/?cate=6
7.3.1 class关键字
在Java中通过class关键字来自定义一个数据类型,使用class自定义的数据类型就叫做类。使用class定义类的基本语法:
[modifier] class ClassName [extends BaseClass] [implements interface]{ // {}里面的为类体 ; }
modifier表示类修饰符,用来控制类的可见性,关于类的可见性会在下一小节继续讲解。ClassName表示自定义的类名,为类取名时,它首先必须符合变量名的基本语法,此外,类名还应当遵循以下两个重要的规则:
(1)良好的可读性
类的名称要有意义,有较强的可读性,类名尽量用英文单词来进行命名。
(2)采用驼峰式命名法
在驼峰式命名法中,单词的首字母都为大写。
extends是Java的关键字,用来继承其它类。implements也是一个关键字,用来实现接口。关于类继承和接口会在后面的教程中详细讲解,初学者现在只需重点掌握如何自定义一个类。
7.3.2 类访问修饰符
Java中的类修饰符用于访问控制,以下为Java中的类的访问控制符:
访问控制符 | 描述 |
public | 其它所有类都可以访问该类。用plublic修饰的类为主类,在一个Java程序中,有且仅有一个主类。 |
在定义类时也可以不加类修饰符,则此时的类只能被同一个包中的类访问。在Java中使用package关键字来定义包,在一个包内可以包含多个类。同一个java文件中的类默认在同一个包。现在来定义一个Dog类,读者需注意的是,在一个Java程序中有且仅有一个用public修饰的类, 也即,在一个Java程序只能定义一个主类。
代码实例-定义Dog类:
class Dog{ ; }
如下图所示,读者可打开IDEA,打开HelloJava项目,然后在IDEA的project视窗中选中src,再右键New一个名为Dog的Java Class。
也可以直接在HelloJava.java中定义一个Dog类。本教程的讲解方式是直接在Java文件中定义Dog类,以便读者阅读。
7.3.3 定义类属性
类属性表示这种数据类型共有的特征。定义类属性的语法很简单,直接在{}中的类体中,以定义变量的语法形式来定义类属性。定义类属性的基本语法:
[modifier] static [modifier] dataType property;
第一个modifier表示访问控制符,以下为修饰类属性的访问控制符:
访问控制符 | 描述 |
public | 其它所有类都可以访问该属性 |
protected | 只能被类自身,该类的子类,以及同一个包中的其它类访问 |
private | 只能被类自身访问 |
在定义类属性时也可以不加访问控制符,则此时的类属性只能被自身以及同一个包中的类访问。类属性也叫做静态属性,在定义类属性时必须加上static修饰符,否则该属性会变成对象属性。dataType表示数据类型,property表示属性名,属性名通常使用小驼峰式命名法。关于变量的命名风格可复习5.2.2节中的内容。
代码实例-为Dog类添加类属性:
class Dog{ // 定义公有的类属性hasATail,该属性能被其它所有类访问 public static boolean hasATail = true; // 不加任何访问控制符时,该属性只能被自身以及同一包中的类访问 static boolean canBark = true; // 定义私有类属性species,0表示狗所属的物种,该属性只能被自身访问 private static int species = 0; }
类属性表示该类型共有的特征,为所有对象共享。在7.4节会讲解如何对类进行实例化,以及通过对象来访问类属性。第二个modifier表示变量修饰符,在5.2节讲到了用final来修饰变量,当用final来修饰变量时,则变量被赋值后就不能再被修改。读者在定义类属性时,如需表示只读的语义,即属性只可读取不能修改,则应该加上final修饰符。
代码实例-为Dog类添加只读的类属性:
class Dog{ // 添加只读的类属性can_guide public static final boolean canGuide = true; // 定义公有的类属性hasATail,该属性能被其它所有类访问 public static boolean hasATail = true; // 不加任何访问控制符时,该属性只能被自身以及同一包中的类访问 static boolean canBark = true; // 定义私有类属性species,0表示狗所属的物种,该属性只能被自身访问 private static int species = 0; }
7.3.4 成员操作符
定义类属性以后,在其它类中可通过类名加成员操作符.来访问类属性:
class Dog{ // 定义公有的类属性hasATail,该属性能被其它所有类访问 public static boolean hasATail = true; // 不加任何访问控制符时,该属性只能被自身以及同一包中的类访问 static boolean canBark = true; // 定义私有类属性species,0表示狗所属的物种,该属性只能被自身访问 private static int species = 0; } public class HelloJava{ public static void main(String[] args) { // 通过成员操作符.来访问Dog类的公有类属性hasATail System.out.println(Dog.hasATail); // 在HelloJava类中不能访问Dog类的私有类属性species // System.out.println(Dog.species); }
7.3.5 定义类方法
类方法表示该数据类型共有的行为。定义类方法的基本语法:
[modifier] static returnType methodName(parameterType parameter1[,parameterType parameter2...]) {
return value;
}
modifier表示访问控制符,类方法的访问控制符同类属性访问控制符,不再赘述。returnType表示方法的返回值类型,如果没有返回值,则应设置为void。
类方法也是函数,函数就是一个代码块,初学者可将函数理解为从输入到输出的转换器。在计算机编程中,可将重复性的代码块封装到一个函数中,以便复用。当需要实现相同的功能时,再直接调用这个函数。
methodName表示方法名,在Java中方法名通常采用混合式命名法。parameter1,parameter2等为函数的形参,parameterType为参数的类型,在类方法中,可以同时定义多个形参,形参之间以英文逗号进行分隔。
与形参相对的是实参。形参是函数定义时的占位符,而实参是调用函数时实际传递的参数。
{}里的为函数体,return语句用来结束函数的执行,当需要返回值给函数的调用方时,直接在return语句后面带上需返回的值。
代码实例-为Dog类添加类方法bark:
class Dog{ // 定义公有的类属性hasATail,该属性能被其它所有类访问 public static boolean hasATail = true; // 不加任何访问控制符时,该属性只能被自身以及同一包中的类访问 static boolean canBark = true; // 定义私有类属性species,0表示狗所属的物种,该属性只能被自身访问 private static int species = 0; /* (1) 定义一个公有的类方法bark, 函数的返回类型为void, 说明无返回值 (2) 类方法bark包含一个形参times, 类型为int */ public static void bark(int times){ // 在函数体中执行for循环,根据times的值来指定执行的次数 for(int index=0; index < times; ++index){ // 每次都会输出woof的狗叫声 System.out.println("woof"); } } }
在其它类中通过类名+成员操作符+方法名来访问类方法:
public class HelloJava{ public static void main(String[] args) { // 执行Dog类的类方法bark,传递实参3 Dog.bark(3); } }
类方法表示该类型共有的行为,比如为Dog类定义的类方法bark,bark是狗叫的意思,所有狗当然具有这样的行为。类方法表示该类型共有的行为,为所有对象共享,就如同狗会狗叫,那么某一条具体的狗肯定也会狗叫。在7.4节的教程中,会讲解如何通过对象来访问类方法。
7.3.5 课后习题
(1) 在Java中如何自定义数据类型?
(2) 谈谈你对类属性,类方法的理解。
(3) 假设要对Python, C++,Java等编程语言进行建模,如何定义表示编程语言的数据类型?
编程语言这种数据类型会有哪些类属性和类方法?
(1) 将第(3)题中的编程语言类,使用Java自定义一个数据类型。
7.3.6 高薪就业班
(1) Python后端工程师高薪就业班,月薪10K-15K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪10K-20K, 免费领取课程大纲
(4) Python大数据工程师就业班,月薪12K-25K,免费领取课程大纲
扫码免费领取学习资料: