java类与对象
2020-05-04 16:03:57来源:博客园 阅读 ()
java类
一、类和对象
类(class)可以看成对具体事物的抽象特征提取。比如:人这个类,拥有器官的属性、拥有走路、劳动、吃喝玩乐的行为等。
对象(Object, instance)可以看成具体的事物,就是类的实例。比如:小明这个人,就是人类的一个实例。
二、类
1. 类的定义
[修饰符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); } }
2. 类的成员
(1)属性:变量(field)
- 成员变量:在类中,有初始值
- 局部变量:在方法中
(2)行为:方法(method)
方法想必都很熟悉了,这里就不多介绍。
(3)构造器:构造方法
构造方法与普通方法不同,构造方法无返回值类型,但有返回值,返回值是新建对象(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)); } }
三、对象
1. 声明对象
类名 对象名;
2. 创建对象
对象名 = new 类名(参数列表);
3. 参数传值
基本数据类型:传值,是指具体数字或字符串,所以变量的内容不会被修改。
引用数据类型:传值,是指引用值,也就是地址,所以变量的内容可能被修改。
- 举个栗子:
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作为自己的成员变量
1. 类组合对象
当在类中声明其他类的对象作为自己成员变量时,要么不使用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的面积 } }
2. 组合类型的一些规则
- 类方法只能操作类变量
- 实例方法可以操作类变量、实例变量
- 类只能调用类方法、类变量
- 对象可以调用类方法、实例方法、类变量、实例变量
原文链接:https://www.cnblogs.com/bpf-1024/p/12658826.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash