java第四章(一)

面向过程pop和面向对象oop

面向过程和面向对象的比较

  • 面向对象和面向过程是程序设计不同的编程思想
  • 面向过程处理大规模问题时复杂性远大于面向对象
  • 面向过程相比于变相对象其流程化使得编程任务明确
面向过程(procedure -Oriented Programming),简称POP
  • 特点:以函数为单位,重点关注的是过程(相同的处理方式可以划分为一个函数)
  • 优点:适合解决小型且简单问题
  • 缺点:代码拓展能力差,维护难度高
  • 代表语言:C语言
面向对象(Object Oriented Programming),简称OOP
  • 特点:以类为单位,重点关注的是类(把不同的事物的相同属性划分为一个类)
  • 优点:适合解决复杂问题,代码拓展能力强,可维护性强
  • 代表语言:C++、C#、Java、Python

类和对象

面向对象具体实现

类:具有相同特征(同一类)事物的抽象描述,例:人类,车类,动物类等,是抽象的概念

先根据客观的事物进行抽象(设计为程序)然后由抽象创造出具体,最终使用的是具体


/*
访权限修饰符(public  无)
修饰符(final abstract)
class修饰类
在Car类中,对汽车属性和行为进行定义
*/  


public class Car{//类
/*
成员变量 (以为变量直接定义在类中,所以称为类的成员)
名词,属性
成员变量可以在类中定义时不给其赋默认值,系统会自动初始化赋值
默认值:引用类型为null   float--0.0
boolean--false   char--‘ ’  int long--0
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)
成员变量的作用范围为整个类体。
*/
String name;
float price;
String color;

/*
成员方法
动词——>行为,功能
*/
public viod run(){
    System.out.println("汽车行驶");
}
public viod stop(){
    System.out.println("汽车停止");
}

/*Car类只是抽象顶点定义了汽车有哪些功能,相当于画了个图纸,不能直接使用
类名.  什么都调用不到
所以类是抽象概念,不能直接使用,要使用得创建类的实例*/  
main
Car bm/*对象*/ = nwe Car();
bm.name = "宝马";
bm.color = "red";
bm.run();
bm.stop();/*属性和行为*/
}

第一步 发现类

第二布 定义类的成员变量(名词)

第三步 定义类的方法

第四步 使用类创建对象

什么是对象

    对象:是类的一个实例,是以类为模板在内存中创建的实际存在的实例。

    如何创建对象

    使用new关键字,car()--类的构造方法,类中会自动提供

    new Car()使用关键字创建一个具体的对象,对象存在内存中

    car bm声明一个car类型变量

    =把右边创建的对象(地址)赋给左边的变量,左边的变量可以表示内存的对象

Car bm = new Car();
bm.name="";

类与对象的关系

类是模板,是定义

对象是具体实例,互不干涉

构造方法

  构造方法名与类名相同,且没有返回值,且不用加void修饰

public class person {

String name;
int age;
/*
类构造方法
    特点:方法名字与类名相同
         无返回值,不用加void修饰
         每一个类中都有一个默认无参的构造方法,一旦类中定义了有参的构造方法,那么默认的无参构造方法就消失了,除非再次定义
public person(){
    name =null;
    age = 0;

}
    作用:为刚创建的对象成员变量进行初始化赋值
*/
public person(){

}

public person(String n,int a){
    name =a;
    age = b;
}



public void showInfo(){
    System.out.println("名字"+name+"年龄"+age);
}

main
person p1 = new person();//创建对象时,调用的是无参的构造方法初始化对象成员,先赋予默认值,后赋予
p1.name = "zhang";
p1.age = 20;
p1.showInfo();

person p2 = new person("li",22);
p2.showInfo();
}

方法的重载

1.在一个类中,有多个名称相同的方法

2.如何在调用时区分同名的方法:

       通过方法的参数的个数,顺序,类型

3.构造方法和成员方法都可以实现方法的重载

4.方法的重载与返回值无关

public person(int a,String b,String c){
    name =a;
    age = b;
    xingbie = c;
}

public person(String b,int a){
    name =a;
    age = b;
}

对象与引用

Java 语言中除基本类型之外的变量类型都称之为引用类型
Java中的对象是通过引用对其操作的
值传递:形参数类型是基本数据类型(传数值)
              方法中的形参改变不影响原本的数据
引用传递:形参数类型是引用数据类型参数(传地址)
                  方法中的形参改变会将原本的数据
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值