1.面对对象和面向过程
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
缺点:没有面向对象易维护、易复用、易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低
总结:面向对象就是托人办事,面向过程就是自己办事
2.什么是对象
对象:热恋时的男女可以被称之为相互为对象。
对不起,单身久了情不自禁
在Java语言里面,万物皆对象。
对象:你可以把任何你看到的东西都看作是一个对象。对象是类的一个实例,例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
就是实例到一个东西就可以被视作对象。
现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。
拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。
对比现实对象和软件对象,它们之间十分相似。
软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
面向对象编程也就是找一个一个对象来办事,那么对象从哪里来的??这个稍后再说
3. 什么是类
类:可以看做是一个模板,用于描述一类对象的行为和状态。
下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):
类可以看成是创建 Java 对象的模板
通过上图创建一个简单的类来理解下 Java 中类的定义:
public class Dog { String breed; int size; String colour; int age; void eat() { } void run() { } void sleep(){ } void name(){ }}
一个类可以包含以下类型变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
一个类可以拥有多个方法,在上面的例子中:eat()、run()、sleep() 和 name() 都是 Dog 类的方法。
构造方法
每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
下面是一个构造方法示例:
public class Person {
private double height;
private double weight;
private String name;
public Person() {
/**
* 空参构造器
*/
}
public Person(double height, double weight, String name) {
/**
* 全参构造器
*/
this.height = height;
this.weight = weight;
this.name = name;
}
}
构造方法可以让我们在对象被实例时快速定义对象的属性。
创建对象
对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字 new 来创建一个对象。
- 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
给person类新增三个行为
public void eat(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在吃饭"); } public void run(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在跑步"); } public void playGame(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在玩游戏"); }
新建一个类用于测试
public class Test { public static void main(String[] args) { Person person = new Person(177,130,"tom"); person.eat(); }}
运行结果
再来一次测试
public static void main(String[] args) { Person person = new Person(177,130,"tom");// person.eat(); person.playGame(); person.run(); }
运行结果
public static void main(String[] args) { Person person = new Person();// person.eat(); person.playGame(); person.run(); }
这两个例子已经可以看出来怎么实例对象了
类名 + 对象名 = new 类名(); 这样实例了一个空的对象,里面什么也没有,只有后面通过setter方法来赋值
类名 + 对象名 = new 类名(属性值); 这样是一个具体的对象,我们已经用构造器对它的属性进行了赋值,所以这个对象就是一个具体的对象。
方法
方法也就是我们一个类的行为
public void eat(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在吃饭"); } public void run(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在跑步"); } public void playGame(){ System.out.println("名字是"+this.name+"身高为是"+this.height+"体重为"+this.weight+"在玩游戏"); }
public 修饰符
void 返回值
eat 方法名
后面小括号里面跟参数,大括号跟方法体
这样就是一个方法了,也是类的行为
当我们实例了一个对象之后,我们就可以通过对象.方法名来调用该类里面的方法。这也是后面我们编程一直要用的东西。
原文转载:http://www.shaoqun.com/a/742778.html
auditor:https://www.ikjzd.com/w/2437
海豚村:https://www.ikjzd.com/w/1779
1.面对对象和面向过程面向过程优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。缺点:没有面向对象易维护、易复用、易扩展面向对象优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护缺点:性能比面向过程低总结:面向对象就
易佰:https://www.ikjzd.com/w/2023
蜜芽宝贝官网:https://www.ikjzd.com/w/1320
telegram:https://www.ikjzd.com/w/1734
什么是dropshipping?跨境电商Dropshipping订单模式详解!:https://www.ikjzd.com/home/19344
亚马逊Coupon实用秘笈(适合小白新手,老手可以忽略):https://www.ikjzd.com/tl/107358
媳妇出轨有挽回成功的吗 要和妻子好好沟通交谈:http://lady.shaoqun.com/a/268822.html
No comments:
Post a Comment