面向对象01面向对象定义及方法回顾

面向对象

  1. 初识面向对象
  2. 方法回顾和加深
  3. 对象的创建分析
  4. 面向对象三大特性
  5. 抽象类和接口
  6. 内部类及OOP(面向对象编程)实战

面向过程&面向对象

面向过程思想:步骤清晰,第一步做法、第二步做法;且适合处理一些较为简单的问题

面向对象思想:分类的思维模式,首先思考解决问题需要哪些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向过程的思索;其适合处理复杂的问题,适合处理需要多人协作的问题

对于复杂的事物,从整体上合理分析,需要使用面向对象的思路来分析整个系统,到了具体操作仍然需要面向过程的思路去处理

面向对象编程的本质(OOP):以类的方式组织代码,以对象的组织(封装)数据

三大特性:

  1. 封装
  2. 继承
  3. 多态

从认识论角度来看,先有对象后有类。对象是具体的事物;类是抽象的,是对对象的抽象

从代码运行的角度看,先有类,后有对象,类是对象的模板

回顾方法及加深

方法的定义
  1. 修饰符
  2. 返回类型
  3. break和return的区别

break:跳出switch,结束循环

return代表方法结束 ,且return返回值必须与方法类型相同

  1. 方法名:遵守规范
  2. 参数列表:(参数类型,参数名)
  3. 异常抛出(后面会讲)
package com.oop;

import java.io.IOException;

//Demo01就是一个类
public class Demo01 {

    //main方法
    public static void main(String[] args) {

    }
    /*
    修饰符 返回值类型  方法名(...){
      //方法体
      return 返回值;
    }
     */
    public String sayhello(){

        return "hello,world!";
    }

    public int max(int a,int b){

        return a>b?a:b;//三元运算符
    }

    public void readFile(String file)throws IOException{
        //异常抛出的方法
    }
}
方法的调用
  1. 静态方法
  2. 非静态方法
  3. 形参和实参
  4. 值传递和引用传递
  5. this关键字
package com.oop;

public class Demo02 {
    public static void main(String[] args) {
        //静态方法  static
        Student.say();//静态方法调用方法:类名.方法名()


        //非静态方法
        new Student().say1();//非静态方法调用,实例化这个类:new 类名().方法名();
        //一般写为,对象类型 对象名 = new 对象值
        Student student=new Student();
        student.say1();//调用对象
    }


    //方法是类一起加载的,且非静态方法需要在实例化当前类之后才可以被静态方法调用
    //静态方法可以调用静态方法,非静态方法之间可以直接调用,非静态也可以调用静态,但非静态方法方法需要实例化后才可以被调用
}
package com.oop;

public class Demo03 {
    public static void main(String[] args) {
        //实参和形参的数据类型需要对应

        //非静态方法 ,调用
        Demo03 demo03 = new Demo03();
        System.out.println(demo03.acc(3,4));

        //静态方法调用
        int add= Demo03.add(1, 2);
        System.out.println(add);
    }

    //静态方法
    public static int add(int a,int b){
        return a+b;
    }
    //非静态方法
    public  int acc(int a,int b){
        return a+b;
    }

}
package com.oop;

//值传递
public class Demo04 {
    public static void main(String[] args) {
        int a=1;  //实参
        System.out.println(a);//1

        Demo04.change(a);
        System.out.println(a);//1
    }
    //返回值为空
    public static void change(int a){   //形参
        a=10;
    }
}
package com.oop;

//引用传递:对象,本质还是值传递
public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.name);//null

        Demo05.change(person);
        System.out.println(person.name);//dsh
    }

    public static void change(Person person){
        //person是一个对象,指向的是Person person = new Person();这是一个具体的人,可以改变的属性
        person.name="dsh";
    }
}
//定义一个person类,有一个属性:name
class Person{
    String name;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值