java类
类(class)可以看成对具体事物的抽象特征提取。比如:人这个类,拥有器官的属性、拥有走路、劳动、吃喝玩乐的行为等。
对象(object, instance)可以看成具体的事物,就是类的实例。比如:小明这个人,就是人类的一个实例。
[修饰符1 修饰符2...] class 类名 { ... }
public class student { // 属性:成员变量 int id; string name; string sex; int age; // 行为:方法 void selfintroduce() { system.out.printf("大家好,我是一名学生。我叫%s,今年%d岁,是一名%s生,我的学号是%d,请大家多多关照。\n", name, age, sex, id); } void study() { system.out.println("我正在学习..."); } void speak(string s) { // s为局部变量 system.out.println(s); } }
方法想必都很熟悉了,这里就不多介绍。
构造方法与普通方法不同,构造方法无返回值类型,但有返回值,返回值是新建对象(new)时的引用地址;当然也有相同之处,都有参数列表,也都可以进行重载。
每一个类都有构造方法,当没有显示定义构造方法时,系统默认会给类一个无参的构造方法。
构造方法定义:
类名(参数列表) { ... }
public class point { string name = null; float x; // x坐标 float y; // y坐标 point() { // 默认构造方法 } point(float a, float b) { // 构造方法重载 x = a; y = b; } point(float a, float b, string s) { // 构造方法重载 x = a; y = b; name = s; } void showpoint() { // 显示点的信息 if(name != null) system.out.printf("%s(%.2f, %.2f)\n", name, x, y); else system.out.printf("p(%.2f, %.2f)\n", x, y); } double distance(point p) { //计算两点距离 return math.sqrt(math.pow((p.x - x), 2) + math.pow((p.y - y), 2)); } }
类名 对象名;
对象名 = new 类名(参数列表);
基本数据类型:传值,是指具体数字或字符串,所以变量的内容不会被修改。
引用数据类型:传值,是指引用值,也就是地址,所以变量的内容可能被修改。
class e { public static void main(string args[]) { point o = new point(); // 新建对象,使用无参构造方法 o.x = 0; o.y = 0; o.name = "o"; point a = new point(3, 4, "a"); // 新建对象,使用重构的构造方法 o.showpoint(); a.showpoint(); system.out.printf("d(oa) = %.2f\n", a.distance(o)); } }
——a类中声明b类的对象b作为自己的成员变量
当在类中声明其他类的对象作为自己成员变量时,要么不使用new关键字新建对象;要么声明和新建放在同个语句中。
class circle { point o; // right // o = new point(0, 0, "o"); // error // point oo = new point(0, 0, "o");// right float r; // right // r = 5; // error // float rr = 5; // right circle() { // 默认构造方法 } circle(point o, float r) {// 重载构造方法 o = o; r = r; } void getcenterpoint() { // 获取圆心信息 o.showpoint(); } double area() { // 计算圆面积 return math.pi*math.pow(r, 2); } }
class e { public static void main(string args[]) { point o = new point(0, 0, "o"); // 新建point对象,使用重构的构造方法 circle c = new circle(o, 8); // 新建circle对象,使用重载的构造方法 c.getcenterpoint(); // 获取圆心信息 system.out.printf("area: %.2f", c.area()); // 计算圆o的面积 } }
如对本文有疑问, 点击进行留言回复!!
Springboot项目因为kackson版本问题启动报错解决方案
Java多线程下的其他组件之CyclicBarrier、Callable、Future和FutureTask详解
网友评论