类和对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类和对象相关的知识,希望对你有一定的参考价值。
面向对象和面向过程详解
我们常说高级语言分为:面向过程和面向对象。
面向过程:c
面向对象:c++, Java
共同点:面向过程和面向对象都是解决实际问题的一种具体思路。
区别:
大家描述一下如下两件事儿:
如何开汽车(事物比较简单,可以用线性的思维去解决)
面向过程:1.采离合2. 挂档3.踩油门,放离合4.开了
面向对象:
驾驶员
2. 汽车
驾驶员开汽车!Motor.start();
如何造汽车(事物比较复杂,使用简单的线性思维无法解决)
面向过程:1. 造车轮 2. 造发动机 3. 造车皮4. 挡风玻璃 …
面向对象:
车轮
买橡胶
到马来西亚
买飞机票
找到橡胶厂
掏钱买
用船将橡胶运到国内
造磨具
将橡胶放入磨具
出车轮
发动机
….
车壳
….
座椅
…
挡风玻璃
….
将上面的造出的东东,组装,汽车造出!
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,可能需要面向过程的思路去处理。
解决简单问题可以使用面向过程解决,解决复杂问题:宏观上使用面向对象把握,细节处理上仍然使用面向过程
面向对象思考方式:遇到复杂问题,先从问题中找到名词,然后确立这些名词哪些可以作为类,再根据问题需求确定类的属性和方法,确定类之间的关系
一 对象和类的概念
java中有一句名言,万事万物皆对象,对象指的是一个具体的事物
比如一个叫小明的人就是一个对象,而类是对对象的抽象
人类就是一个类,小明就是人类的一个实例也就是对象,人类中可能有其他人也就是其他实例,小李,小孙等等
把车作一个类的话,对象就是 我家的别克车,对象也可以是你家的玛莎拉蒂车,对象就是具体的事物,而类就是对象的集合,所有对象的统称
类可以看做是一个模版,或者图纸,系统根据类的定义来造出对象
比如车类,模板就是有四个轮子,发动机,座位,可以跑
车类的一个对象可以是你家的车,就有四个轮子,发动机,也能跑,也能带着你跑,车是你家的车,是一个实在的例子
类的定义
在java中类的定义方式是 class 类名
1 class Car{ 2 3 }
比如这个Car类
上面的Car类一片空白,可以定义属性,有轮子,发动机,座位 可以定义跑的方法
class Car{ String name; int age; String color; String zuowei;
void run(){
System.out.println("我是汽车我能跑,还能带人跑");
} }
上面定义了属性,有车的名字,车龄,颜色,座位,还有个跑的方法
创建了类了,就该创建对象了,通过车类得到你家的车
类名 对象名 = new 类名()
class Car{ String name; int age; String color; String zuowei; void run(){ System.out.println("我是汽车我能跑,还能带人跑"); } public static void main(String[] args){ Car car = new Car(); car.name="极品宝马" car.age=3; car.color="黑色"; car.zuowei="真皮"; car.run(); } }
你家的车改名叫极品宝马,已经3年的历史了,黑色,被你改装成了真皮沙发,还在跑
一般类中除了属性和方法还包含构造器,也就是构造函数,可以在创建对象的时候直接给属性赋值,相当于,直接给对象做个自我介绍
class Car{ String name; int age; String color; String zuowei; public Car(String name,int age,String color,String zuowei){ this.name=name; this.age=age; this.color=color; this.zuowei=zuowei; } void run(){ System.out.println("我是汽车我能跑,还能带人跑"); } public static void main(String[] args){ Car car = new Car("极品宝马",3,"黑色","真皮"); car.run(); } }
这和上面的效果是一样的,如果在定义类的时候不创建构造器,系统会默认定义一个无参构造器
类中的属性:[修饰符] 属性类型 属性名 = [默认值]
可以直接赋初始值,也可以不赋值,系统会默认初始值
属性可以是基本数据类型,也可以是引用数据类型
类中的方法:定义该类的功能,比如吃饭,睡觉,打架这些动态的行为,可以这么理解,属性是名词,方法是动词,方法展现的是该类能干什么事,有什么行为
方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表) {
// n条语句
}
类和对象实例:
1 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下:
2 可以生成具有特定坐标的点对象。
3 提供可以设置三个坐标的方法。
4 提供可以计算该“点”距另外点距离平方的方法。
class Point { double x, y, z; public Point(double _x, double _y, double _z) { x = _x; y = _y; z = _z; } public double getDistance(Point p) {//传参数,参数就是Point的一个对象
//计算两点之间的距离 return Math.sqrt((x - p.x)*(x - p.x) + (y - p.y)*(y - p.y) + (z - p.z)*(z - p.z)); } } class Test { public static void main(String[] args) { Point p = new Point(5.0, 6.0, 7.8); Point origin = new Point(0.0, 0.0, 0.0);
//通过调用方法得到距离 System.out.println(p.getDistance(origin)); } }
结果
以上是关于类和对象的主要内容,如果未能解决你的问题,请参考以下文章