什么是类和对象?类和对象的关系?高级教程通俗易懂

585 阅读3分钟

Java基础知识面试题每日三道 追梦:第二天

1.什么是类和对象? 类和对象的区别?

类是对象的抽象,而对象是类的具体实例。 类是抽象的,不占用内存,而对象是具体的,占用存储空间。 类是用于 创建对象的蓝图,类就是一个带方法和变量的特定类型 类和对象好比图纸和实物的关系,模具和铸件的关系。

比如: 人类就是一个虚拟的类,人的姓名/身高/体重/肤色/年龄就是属性。

类中的属性

private String name;  //姓名

private String height;  //身高

private String weight;  //体重

private String color;  //肤色

人类可以吃饭,学习,打游戏等方法。 类中的方法

/**
* 方法: 吃饭
*/
public string eat() 
        { 
            System.out.println(name+"在吃麻辣香锅");
        }
        
    
    /**
* 方法: 学习
*/
public string learn() 
        { 
            System.out.println(name+"在学习 java");
        }
        
        
        /**
* 方法: 打游戏
*/
public string playGames() 
        { 
            System.out.println(name+"在打LOL的排位模式玩粉色妖姬");
        }
        

法外狂徒 张三就是一个具体的人,也就是一个实例。他的姓名:张三,身高:1.85cm,体重:75KG,肤色:至尊黄皮就是张三这个人的属性。他做的 学习法律,打豆豆就是方法。

还可以有李四,码云 等具体的人即对象,但他们都是人类的实例,即类

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

两者都是软件开发思想,先有面向过程,后有面向对象。在大型项目中,针对面向过程的不足推出了面向对象开发思 想。

比喻: 面向过程是蛋炒饭,面向对象是盖浇饭。盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满 意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。蛋炒饭就不 行了, 如果不满意就要丢掉重做;

区别:

编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例 化类、执行方法来完成功能。

封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能。 面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显。

3.方法重载和方法重写(覆盖)的区别?

image.png

1. 重载:

①必须要有不同的参数列表;

②可以有不同的返回类型;

④可以有不同的访问修饰符;

⑤可以抛出不同的异常;

⑥注意:不能以返回类型来区分重载方法,只能以“参数类型”和“类名”来区分。

2.重写:

①参数列表必须与被重写的方法的相同;

②返回的类型必须与被重写的方法的相同;

③访问修饰符的限定必须大于被重写的方法的访问修饰符(public>protected>default>private);

④重写方法一定不能抛出新的检查异常或者重写的方法申明更加宽泛的检查异常;