对象和类,变量
1.面向过程和面向对象
从语言上来说:
- 对于C语言,是面向过程的
- 对于C++和Java,时面向对象的
那么什么是面向过程,面向对象的呢?
比如做饭,
面向过程:
首先淘米,再洗米,再放进电饭煲,再加热
面向对象:
要有米,要有电饭煲
米可以淘,可以洗,电饭煲可以加热,米可以作为属性传给电饭煲
面向过程是流程化的解决方案,一步一步去干什么;
面向对象是以对象为中心,抽象出需求的对象,再给对象描绘属性和行为。通俗的说,面向对象就是这个事件有哪些概念,我要设计哪些类来表示这些概念,类要提供什么属性,封装什么方法。
采用面向对象的方式进行开发,更符合人类的思维方式。(面向对象成为主流的原因)
人类就是以“对象”的方式去认识世界的。
2.特征
那么面向对象有什么特征呢?我在某乎上看到这样的解释!!
就讲讲女娲造人的故事,刚开始描绘人的特性,人要有手吧,脚吧,头啊等,这就是抽象;接着这些手啊,脚啊,具体是怎么做出来的,我们不用管,只要知道这脚可以走路,手可以干活,这就是封装,不需要知道具体实现,只要知道这拿来干嘛;接着还要造其他的人,就仿着这个父类做,这就是继承;我们知道人有二种,男人和女人,这就是多态。
那么总结就是抽象,封装,继承,多态🤔
3.对象和类
那么Java中对象又是什么呢?和类有什么区别
类:类是一个抽象的概念,是一个模版,是一群事物的共同特性。
对象:对象是类的一个实例,是实际存在的个体。
- 比如:人是一个类
- 易建联就是一个对象
- 刘德华就是一个对象
- 小派(我)也是一个对象
理清几个概念:类,对象,实例,实例化,抽象
类---->【实例化】---->对象(实例)
对象---->【抽象】----->类
抽象出来的类中有什么呢?我们看看代码
public class Person {
public String name;
public int age;
void eat(){
//吃。。。
}
void sleep(){
//睡。。。
}
}
类 = 属性 + 方法
属性:在代码上以变量的形式存在
方法:描述行为
方法是具体的行为描述,在类中变量有下面几种类型
4.变量
-
局部变量
在方法体中声明的变量
void eat(){ int i = 10;//局部变量没有默认值,不能直接使用 }
-
成员变量
方法体外声明的变量,也就是属性
public class Person { public String name; public int age; }
-
类变量
方法体外声明的变量,用static修饰的
public class Person { public static String nature = "可爱"; }
5.访问修饰符
修饰符 | 当前类 | 同一包 | 子类(不同包) | 其他包 |
---|---|---|---|---|
public | Y | Y | Y | Y |
protect | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |