1 //package 语句 声明 类的位置,会建立相应的文件夹,存放类 2 //package 包名; 只能有一条,不能写多个 3 package org.java; 4 5 //import 语句 6 //一个类可能会需要另一个类声明的ui想 类作为自己的成员 或 者反发的局部变量 7 //若两个类不在同一个包中,就需要导入import语句 8 //import 类所在的包 的名字 9 import java.util.*;//包含数据结构类 10 import java.io.*;//包含所有的输入/输出类 11 import java.sql.*;//包含数据库类 12 import java.net.*;//包含所有实现网络功能的类 13 import java.lang.*;//包含所有的基本类 14 15 /* 16 面向对象编程:有三个特性,封装性,继承性,多态性 17 18 java 类总结 19 1:类的实现 20 包括:类的声明和类体 21 1.1:类的声明: 22 格式如下:class 类名{ 23 类体 24 } 25 1.2:类体: 26 1.2.1变量的声明,刻画属性 27 1.2.2方法的定义,刻画功能 28 变量的声明部分声明的变量为:成员变量 29 方法体中的变量为和方法的参数为:局部变量 30 31 访问权限: 32 类的访问权限: 33 public:其他包中的类可以访问这个 类 34 缺省: 这个类 只能在本包中 进行访问 35 成员的访问权限: 36 public:都可以访问 37 private:只能在本类中进行访问 38 protected: 在本包中 和 子类中 能被访问,其他的访问出错 39 缺省:在本包中 能被访问 40 */ 41 public class Test { 42 //Test为类名:合法标识符:字母,下划线,数字和美元组成,第一个字符不能为数字,且拉丁字母首字母大写; 43 44 //变量的声明:成员变量->在整个类内部有效 45 // 成员变量分为:实例变量 和 类变量(static关键字修饰,也称为静态变量) 46 //方法体中声明的变量和方法的参数为:局部变量->只在方法中有效 47 48 //方法:实例方法 和 类方法 49 //实例方法:没有static关键字, 50 //类方法:加上static 关键字 即为类方法 51 52 53 //变量的类型:整型,浮点型,字符型等基本类型,和数组,对象,接口等引用类型 54 //基本类型数据: 55 // 逻辑类型:boolean 56 // 整数类型:byte,short,int,long;//分别分配,1,2,4,8 个字节 57 // 字符类型:char;//2个字节 58 // 浮点类型:float,doble;//分别分配4,8个字节 59 // 注意:级别低的变量 赋值给 级别高的变量的时候,会自动进行类型转换 60 // 但是级别高的变量 赋值给 级别低的变量的时候,需要显示的类型转换 61 int width;//实例变量 62 int height;//实例变量 63 String name;//实例变量 64 static int cnt;//类变量|静态变量 65 66 //类的完整性包括 set方法,get方法,toString方法和功能方法,构造方法(无参,有参) 67 68 //功能方法 69 //方法的定义包括:方法的声明和方法体 70 //格式: 方法的声明{ 71 // 方法体 72 // } 73 //方法的声明:包括 方法名 和方法返回类型 74 //如下 int(返回类型) area(方法名) 75 //实例方法: 76 // 可以操作实例变量,也可以操作类变量; 77 // 也可调用实例方法,也可以调用类方法; 78 public int area(int width,int height) {//int height 局部变量 79 //成员变量的隐藏:若是 局部变量的名字 和 成员变量 名字相同,那么这个方法隐藏了成员变量 80 // 可以使用this.成员变量的名字,使成员变量有效 81 int tmpData=0;//局部变量,只有初始化之后,才可以使用,否则报错 82 cnt++;//实例方法操作 类变量 83 System.out.println(tmpData); 84 this.width=width; 85 this.height=height; 86 return this.height*this.width; 87 } 88 //多态包括:两种:重写(overload) 和 重载(Override) 89 //重载:方法的名字相同,但是 参数个数不同 或者 参数类型不同 90 //重载 area方法->方法类型不同 91 //重写:重写父类的方法 或者称为 覆盖父类的方法 92 public double area(double x,double y) { 93 x=width;//this 可省略,操作实例变量 94 y=this.height+1.0; 95 return x*y; 96 } 97 98 //类方法:加上static关键字 99 // 类方法只能操作类变量,不能操作实例变量 100 // 只能调用类方法,不能调用实例方法 101 public static int count() { 102 cnt++;//类方法 操作类变量 103 Test.cnt++;//或者通过 类名.类变量操作 104 return cnt; 105 } 106 107 108 //构造方法:无参 109 //构造方法的名字和类名一样 110 public Test() { 111 super(); 112 } 113 //构造方法:有参(也属于重载) 114 public Test(int width, int height, String name) { 115 super(); 116 this.width = width; 117 this.height = height; 118 this.name = name; 119 } 120 121 //get,set方法 122 public int getWidth() { 123 return width; 124 } 125 126 public void setWidth(int width) { 127 this.width = width; 128 } 129 public int getHeight() { 130 return height; 131 } 132 public void setHeight(int height) { 133 this.height = height; 134 } 135 public String getName() { 136 return name; 137 } 138 public void setName(String name) { 139 this.name = name; 140 } 141 142 //重写object里面的toString()方法 143 //创建类时,若是没有指明父类,那么会默认为object类 144 //会继承object里面的所有方法 145 //所以这里才能重写 父类object类里面的toString方法 146 //重写 147 @Override 148 public String toString() { 149 return "Test [width=" + width + ", height=" + height + ", name=" + name + "]"; 150 } 151 152 153 154 155 156 }