面向对象的概念 | 类与对象 | java基础
2017-08-08 12:05
330 查看
一、面向对象的概念
关于面向对象的概念问题一直困扰了我好久,虽然看了很多例子但始终不理解(文转理),最近在知乎上看到这么一个回答,我要给他十万个赞,感觉很是精辟
引号内为原文,知乎网友匿名
“
你的程序要完成一个任务相当于将一个故事
面向过程是编年史
面向对象时纪传体
相对于复杂的程序/宏大的故事,事实证明了,面向对象/纪传体都是更好的表达方式
”
https://www.zhihu.com/question/27468564?sort=created(附该问题地址)
面向对象有三个特性
1、封装性 (是面向对象核心思想,使程序更安全)
2、继承性 (通过继承,可以不用编写新的类,对原有类进行扩展)
3、多态性 (多态性指的是在程序中允许出现重名现象,即一个类中定义的属性和方法被其他类继承后,可以表现出不同的数据类型或不同的行为,这使得同一属性和方法在不同的类中有不同的意义)
二、类与对象
类和对象的概念:
类就是类别,类别关注共同的属性和行为。
万物皆对象,有些对象是包含着其他对象的,成为类。
例如狗是一个类,狗的属性:体重,毛色;狗的行为:吃狗粮,汪汪叫。
而一只多少体重,什么颜色,这就是对象。
对象是根据类创建的,并且一个类可以创建多个对象。
1、类的定义
想要创建一个对象,首先要定义一个类,用来描述一组对象的共同特征,行为。
类中有成员变量,成员方法。
成员变量:描述对象的特征,又称作属性
成员方法:描述对象的行为,简称方法
方法中也可以定义变量,这种变量称为局部变量。如果两种变量重名,此时通过变量名访问的是局部变量。
有类之后如何创建对象?可以使用new关键字
当实例化一个对象的时候,java虚拟机会自动为其初始化,不同类型的变量初始化值也不同。
2、类的封装
定义:将类中的属性私有化,即使用private关键字来修饰,私有属性只能在他所在的类中被访问。
外界如何访问私有属性?
获取属性值 getXxx( )方法
设置属性值 setXxx( )方法
关于面向对象的概念问题一直困扰了我好久,虽然看了很多例子但始终不理解(文转理),最近在知乎上看到这么一个回答,我要给他十万个赞,感觉很是精辟
引号内为原文,知乎网友匿名
“
你的程序要完成一个任务相当于将一个故事
面向过程是编年史
面向对象时纪传体
相对于复杂的程序/宏大的故事,事实证明了,面向对象/纪传体都是更好的表达方式
”
https://www.zhihu.com/question/27468564?sort=created(附该问题地址)
面向对象有三个特性
1、封装性 (是面向对象核心思想,使程序更安全)
2、继承性 (通过继承,可以不用编写新的类,对原有类进行扩展)
3、多态性 (多态性指的是在程序中允许出现重名现象,即一个类中定义的属性和方法被其他类继承后,可以表现出不同的数据类型或不同的行为,这使得同一属性和方法在不同的类中有不同的意义)
二、类与对象
类和对象的概念:
类就是类别,类别关注共同的属性和行为。
万物皆对象,有些对象是包含着其他对象的,成为类。
例如狗是一个类,狗的属性:体重,毛色;狗的行为:吃狗粮,汪汪叫。
而一只多少体重,什么颜色,这就是对象。
对象是根据类创建的,并且一个类可以创建多个对象。
1、类的定义
想要创建一个对象,首先要定义一个类,用来描述一组对象的共同特征,行为。
类中有成员变量,成员方法。
成员变量:描述对象的特征,又称作属性
成员方法:描述对象的行为,简称方法
方法中也可以定义变量,这种变量称为局部变量。如果两种变量重名,此时通过变量名访问的是局部变量。
class Person{ int age=10; void speak(){ int age=20; System.out.println("大家好,我今年"+age+"岁") } } //代码结果是20,最简单的类和方法也是这样定义的
有类之后如何创建对象?可以使用new关键字
//创建Perso 4000 n的实例对象 Person p=new Person(); //如何访问对象的成员? 对象名.成员名 p.age=30; //为age赋值 p.speak(); //调用对象的方法
当实例化一个对象的时候,java虚拟机会自动为其初始化,不同类型的变量初始化值也不同。
2、类的封装
定义:将类中的属性私有化,即使用private关键字来修饰,私有属性只能在他所在的类中被访问。
外界如何访问私有属性?
获取属性值 getXxx( )方法
设置属性值 setXxx( )方法
//案例:如果编写一个自我介绍,把年龄输入成负数,是不对的,但是我们又无法制止,因此用到了封装,代码如下 class Student { private String name; // 将name属性私有化 private int age; // 将age属性私有化 // 下面是公有的 getXxx 和 setXxx 方法 public String getName() { return name; } public void setName(String stuName) { name = stuName; } public int getAge() { return age; } public void setAge(int stuAge) { // 下面是对传入的参数进行检查 if (stuAge <= 0) { System.out.println("年龄不合法..."); } else { age = stuAge; // 对属性赋值 } } public void introduce() { System.out.println("大家好,我叫" + name + ",我今年" + age + "岁!"); } } public class Example04 { public static void main(String[] args) { Student stu = new Student(); stu.setAge(-30); stu.setName("李芳"); stu.introduce(); } } //这样就会在传入参数的过程中起到检查作用
相关文章推荐
- Java基础:面向对象(1)--对象的概念、成员变量与局部变量、匿名对象、类的封装
- JAVA 面向对象 基础概念,匿名对象的使用,方法的重载
- 黑马程序员-15-java基础-面向对象(1)-概念介绍与类、对象、构造方法
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 【java开发】面向对象初步认识与基础概念讲解
- 黑马程序员——Java基础:面向对象一些概念的区分(二)
- JAVA基础——对象与引用概念(转载)
- java基础-面向对象、类与对象的定义
- Java面试题精选(一)基础概念和面向对象
- java面向对象12讲 基础一 什么是面向对象
- 重踏学习Java路上_Day06(java 基础下与面向对象,二维数组与面向对象基础)
- 黑马程序员 05 Java基础教学 - 05 - 面向对象(1) 之 类、对象、封装
- JAVA面向对象-----面向对象(基础预备知识汇总)
- 黑马程序员——Java基础:面向对象一些概念的区分(一)
- Java基础(极客)——09、Java面向对象中类与对象的概念和使用
- java基础--类与对象概念
- Java基础之面向对象的基本概念(3)
- JAVA基础知识思维导图:unit02_面向对象(方法、构造器、对象),内存管理,访问控制
- JAVA面向对象-----面向对象(基础预备知识汇总)
- java基础总结13-面向对象9(对象转型)