什么是面向对象?
1.面向过程思想
答:线性过程 第一步做什么 第二步做什么
2.面向对象思想
答:物以类聚有,分类的思维模式,思考问题首先解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行全面过程的思索
面向对象编程(oop)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织数据
三大特性
1.封装
2.继承
3.多态
类和对象的关系
类:类是一种抽象的数据类型,它是对某一类事务的整体描述/定义,但并不能代表某一个具体的事物,比如:手机,动物,植物 等等.....
对象:对象是抽象概念的具体实例,例如:狗就是属于动物类中的一个具体实例
创建与初始化对象
使用new关键字创建对象
先有对象才有类 先定义一个总的类 例如 人类 在人类中可以分为name与age 然后再到对象中取实现这个,因为有很多人每个人不同名字不同年龄 所有不能在类中写死 于是有了对象 对象可以定义不同的类 例如在对象中:xiaoming 20 xiaohong 19;
类:这里定义了name 与age 但是要在对象中给他们赋值
对象:对象在方法中实现 这个分别给name与age赋了 xiaoming 与 xiaohong 以及给他们分别赋了 20与19并且在方法中输出了赋予值的属性
构造器详解
什么是构造器?
构造器也叫构造方法作用是构造一个类的实例,确保对象能够初始化
根据有无参数,构造器可分为无参构造和有参构造
构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象实例进行默认的初始化
构造器的特性
1.与一般方法名不同的是,构造方法名必须和类名保持一致,并且没有返回值,甚至连void都没有。
2.Java编译器会自动创建无参构造函数,因此在类中,无参构造即使没有,我们也可省略不写。实例化对象时无需赋值
3.倘若类中已存在有参构造函数,则编译器不再提供默认无参构造。实例化对象时需赋值,不然报错。
4.当类实例化一个对象时会自动调用构造方法。
5.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承
6.每个类可以有零个或多个构造方法.
简单小结类与对象
1.类与对象
类是一个模块,抽象的。对象是一个具体的实例
2.方法
定义,调用
3.对象的引用
引用类型:基本类型(8)
对象是通过引用来操作的:栈-》堆
4.属性:字段Field 成员变量
默认初始化:
数字:0 0.00
char: u0000
boolean:false
引用:null
修饰符 属性类型 属性名 = 属性值
5.对象的创建与使用
-必须要new创建对象,构造器 Person kuangsheng = new Person();
-对象的属性 kuangshen.name
-对象的方法 kuangshen.sleep()
6.类:
静态的属性 属性
动态的行为 方法
封装
高类聚,低耦合
封装是将对象封起来 如何封起来呢 就要用到private private:私有的
在创建对象时要使用private 例如:private String name; 这里将name给私有化了
私有化之后在类中就获取不到呢怎么办呢,这时就要在对象下面加上get和set方法
get:获取这个数据 例如sout(student.getName),这样就能输出name的值了
虽然能获取数据 但是怎样给数据赋值呢。这时就要用到set方法
set:给这个数据设置值 例如 student.setname("李旺") 这样就能给通过set方法给name进行赋值
小结:封装就是把属性私有化了,让外部不能随意更改值和获取值 只能通过get和set方法获取
继承
继承顾名思义,可以理解为儿继承父亲 儿子可以继承父亲里面所有东西
如何来继承呢? 继承需要用到一个单词就是"extends" 单词后面加上继承的父类名字
例如:LiWang extends WangMy 这个意思就是李旺类继承了王明阳类
继承的作用继承中子类可以用到夫类的使用东西 对象,方法等等
但是前提是父类中需要使用public公共的 但是private私有的也没关系通过getset请求就好了
标签:Java,name,对象,构造,---,继承,实例,面向对象编程,属性 From: https://www.cnblogs.com/wmyk/p/16864338.html