【JAVA语言学习】Java面向对象Ⅰ

面向对象

简介:

面向过程 : procedure oriented programming 缩写 POP

​ 分析出解决问题所需要的步骤,然后把步骤一步一步实现.

面向对象 : object oriented programming 缩写 OOP面向对象的编程语言

​ 以分类方式进行思考,用面向对象思维,用某个工具复杂的问题.面向对象的思想符合一般的认知习惯

比如: 你现在要做一道菜(西红柿炒鸡蛋),对于面向过程来说,就是1.先切菜,打鸡蛋 2.搅拌鸡蛋 3.烧油 4.倒鸡蛋液 5.倒西红柿 6.出锅

对于面向对象: 你speak: “妈,帮我炒个西红柿鸡蛋”

​ 类是一个模板,描述一个类型的对象的属性和行为.类时表示客观世界某类群体的一些基本特征的抽象.

图纸/菜谱/类======>零件/菜/对象

类的结构

​ 成员变量: 也就是类中的属性,可以理解为全局变量,(这个类有什么)

​ 方法:对象的行为(类似与其他语言的函数)(这个类能干什么)

​ 构造方法:用于创建对象

​ 内部类:在类中声明的类

​ 块:代码块

类的声明

​ 类的声明格式为: [访问权限修饰符] [修饰符] class Car{}

​ 访问修饰符有两种:public ,default

​ 修饰符:final,abstract

​ 关键字:class 用来定义类

​ 类的命名规范:首字母大写,见名知意,驼峰命名法

package com.cxy.javaClass.day1;
/**
 * 主人公类,属性有名字,宽高*/
public class Part {
    String name;
    int part_width = 20;
    int part_hight = 60;
    public Part(String name){
        this.name = name;
    }
    public Part(){
        this.name = "NULL";
    }
    public void run(){
        System.out.println("I am "+name+", I'm run");
    }
    /**
     * 获取part的x轴起始位置
     * */
    public int getX(int x) {
        return x;
    }
    /**获取part的y轴起始位置*/
    public int getY(int y) {
        return y;
    }
    /**获取最大值,int型*/
    public int getMax(int x,int y){
        return (x>y)?x:y;
    }
    /**获取最大值, double型*/
    public  double getMax( double x, double y){
        return (x>y)?x:y;
    }
}

对象的创建和使用:

​ 使用new关键字: new Part();

​ 用变量来承接: Part part_one = new Part(); Part是part_one 的变量类型

​ 使用对象.成员变量来调用属性:part_one.name;

​ 使用对象.方法来调用方法: part_one.getMax(x,y);

​ 同一类的每个对象有不同的成员变量存储空间。

​ 同一类的每个对象共享该类的方法。

​ 一个类可以实例化多个对象

//实例化
package com.cxy.javaClass.day1;
public class main_cyc {
    public static void main(String[] args) {
        Part P1 = new Part("JAM");
        Part P2 = new Part();
        P1.run();
        P2.run();
        int x=P1.getX(100);
        int y=P1.getY(110);
        System.out.println(P1.getMax(5,6)+"\n"+P1.getMax(5.5,6.5));
    }
}

变量分类

一个类可以包含以下类型变量:

//成员变量:
成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
在定义成员变量时可以对其初始化,如果不初始化,Java使用默认的值对其初始化。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中方法、构造方法和特定类的语句块访问。
成员变量的作用范围为整个类体。
//局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
局部变量在使用前必须初始化赋值。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
//类变量:(也叫静态变量)
类变量也声明在类中,方法体之外,但必须声明为static类型.

构造方法

构造方法是在java种用来创建对象的方法,构造方法与类名相同,没有返回值,不需要用viod来修饰

public class Part {
    String name;
    int part_width = 20;
    int part_hight = 60;
    public Part(String name){ //构造含参的构造方法
        this.name = name;
    }
    public Part(){		//构造不含参的构造方法
        this.name = "NULL";
    }
}

方法重载

一个类的方法可以定义有相同的名字,单参数不同,调用的时候,传入的参数是什么类型,就会有不同的方法(方法的重载与返回值类型没有任何关系)

public class Part {
    /**获取最大值, int型*/
   	public int getMax(int x,int y){
        return (x>y)?x:y;
    }
    /**获取最大值, double型*/
    public  double getMax( double x, double y){
        return (x>y)?x:y;
    }
public static void main(String[] args) {
        Part P1 = new Part("JAM");
        System.out.println(P1.getMax(5,6)+"\n"+P1.getMax(5.5,6.5));
    }

对象与引用

new car(); 实在对空间种创建了实体,尽管他们是实实在在的实体,但我们无法使用,对象没有名字,我们就无法访问它,我们需要通过对象的引用来间接访问对象.

car car1 = new car();

这样就给对象了一个名字,可以通过名字来访问,使用对象.

car2 = car1; 这痒发生了复制行为,对象本身并没有被复制,被复制了的只有对象的引用,也就是car2和car1两个变量名指向了同一个内存空间.

//值传递与引用传递
//Java中进行方法调用中传递参数时,参数传递有两种:
值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。

引用传递:(形式参数类型是引用数据类型参数):也称为传地址。方法调用时,实际参数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下来,所以方法执行中形式参数的改变将会影响实际参数。

//基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身 
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值