【JAVA编】类和对象

【JAVA编】类和对象,第1张

类和对象

一 面向对象和面向过程

1. 什么是面向对象?

我们知道java是一门纯面向对象语言,在面向对象的世界里,一切皆为对象

面向对象是解决问题的一种思想,主要依靠对象之间的交互完成的一件事情,用面向对象的思想来涉及程序更符合人对事物的认知

那面向对象各和面向过程区别又是什么呢?

我简单举个例子来区分面向对象各和面向过程是什么

比如你想吃西红柿炒蛋,怎么办?

有两个选择

1 自己去买材料 ,鸡蛋,西红柿,调料,打鸡蛋,切西红柿,起锅烧油,

2 去饭店,直接点一份西红柿炒蛋,付钱

这样可以看出它们的区别

1 是面向过程

面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

2 是面向对象

面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。

面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用的就是面向对象了。

2. 面向过程和面向对象的区别
面向过程

优点:性能比面向对象好,因为类调用时需要实例化,开销比较大,比较消耗资源。
缺点:不易维护、不易复用、不易扩展

面向对象

优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程差

二 如何定义一个类

1 什么是类

首先先简单了解类,类是一个实体(对象)来进行描述的,主要描述该实体(对象)具体哪些属性(外观等),

哪些功能(主要用来干啥),我举个例子

比如:人

在java里可以看成一个类

他的属性指的是:姓名,年龄,性别等等

那功能那就相当是:跳,走,跑,吃饭等等

那在javak中如何对上述定义呢?如下

修饰符 class 类名{
      
    1.成员变量(属性)


    2.行为方法
   
}

具体代码如下:

public class Student {
    //成员变量(属性)
    public String name;
    public int age;
    public String gender;
    
    
    //成员方法
    public void Show(){
        
    }
}

class为定义类的关键字,Studay为类的名字,{}中为类的主体

修饰符有:public protected default ptivate

public(公有的)访问权限,可以修饰类,接口,变量,方法;public所修饰的内容,在当前类,同一个包,其他包都可以访问;

protected(受保护的):可以修饰变量,方法,不可修饰外部类;使用该修饰符修饰的类型可以在当前包,类,同一包类的子类中访问;其他包不可以访问;

default(默认):可以修饰类,接口,变量,方法使用该修饰符修饰的类型可以在当前包,类,同一包内的子类中访问;其他包不可以访问

private(私有的):可以修饰变量,方法,不能修饰外部类;使用该修饰符修饰的对象只可以在本类中使用,其他任何地方都不可以使用;

三 对象的创建

很简单,就是通过 new 关键字(类名)

比如创建是一个学生类Student那么可以用new个实例化对象

Student stu = new Student  //创建个实例化对象

四 成员变量和成员方法的调用

重点:成员变量它是依赖于对象,所以 *** 作成员变量,首先要创建对象,
有对象,才能 *** 作属性

注: 当是static修饰的时候就不是依赖对象,而是依赖类

*** 作:引用变量名.成员变量名

举例:一个学生类

//定义一个类
class Studay {
    //成员变量
    public String name;
    public int age;
    public String gender;

    //成员方法
    public void Show(){
        System.out.println("name:"+name+"\tage:"+age+"\tgender:"+gender);
    }
}


public class TestStuday {
    public static void main(String[] args) {
    Studay stu = new Studay();//创建一个实例化对象
    // 通过引用变量名.成员变量名 来调用成员变量和成员方法
    //通过引用变量名.成员变量名初始化
    stu.name="小二";
    stu.age=30;
    stu.gender="男";
    stu.Show();
    }
}

 1. 先有类,才有对象。

2. 类只有一个,对象可以多个。

3. 对象依赖于类。

比如:

//定义一个类
public class Studay {
    //成员变量
    public String name;
    public int age;
    public String gender;


    //成员方法
    public void Show(){
        System.out.println("name:"+name+"\tage:"+age+"\tgender:"+gender);
    }

    public void Show(String name, int age, String gender) {
        System.out.println("name:"+name+"\tage:"+age+"\tgender:"+gender);
    }
}

public class TestStuday {
    public static void main(String[] args) {
    Studay stu = new Studay();//创建一个实例化对象
    // 通过引用变量名.成员变量名 来调用成员变量和成员方法
        //初始化
     stu.name="小二";
     stu.age=30;
     stu.gender="男";
     stu.Show();

    Studay stu1 = new Studay() ;
        stu1.name="老李";
        stu1.age=40;
        stu1.gender="男";
        stu1.Show();

    Studay stu2 = new Studay();
        stu2.Show("小小",20,"女");//也可以传参初始化
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/883367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存