java 面向对象基础编程

1.面向对象编程

面向过程:第一步做什么,第二部做什么。。
面向对象:不再考虑第一步第二步,具体去完成什么,而是找个人(对象)来帮我们完成。
面向对象三大基本特征:封装,继承,多态
2.java为实现面向对象而使用的基础语法:

1.类型定义
(修饰词) class +类名(){
//类的成员
}
public class HelloWorld {} 类型的定义
格式:public class 类型名 {类的内容}
通过这个语法定义下的类型,统统属于引用数据类型
TIPs:1.在java中但凡要写出一句语句,都必须要先定义类型。
2.我们面向对象编程中使用的对象,就是由引用类型创建的。

2.程序入口
public static void main(String[] args) {}
固定结构:主函数/主方法
作用:程序入口,我们编写好的程序,在编译完成,通过java命令运行时,我们的java程序会首先寻找这个main,找到之后,执行其中的代码。

TIPs:这里要注意,这个main和HelloWorld其实是没有直接关系的,只是由于java语法,我们编写的代码必须编写在类型中,所以我们在写主方法时,首先要创建一个HelloWorld类型

TIPs:以后我们写代码步骤:1.创建类型,2.使用类型。
承载主方法的那个类型,我们一般是不去使用的,只看作入口。

3.类型的定义:
格式:public class 类型名称{ 类型的内容 }

TIPs:通常在java中,一个类型占据一个源文件。
3.1类的内容:
1)属性:(成员变量):为类定义的变量,描述类型所拥有的特征。
意义:定义此类型所拥有的特性,就是这个类型有什么。
格式:类型 变量名 ;(声明变量)
TIPs:从格式上我们可以看出,就是在类中声明了一个变量。

2)方法:为类定义的函数,描述类型所拥有的行为
格式:
[修饰词] 返回值类型 方法名 (参数列表) {方法体}
public void 方法名 () {}
public static void main (String[] args) {}
TIPs:在java中所有的逻辑代码,都写在方法体重。

意义:定义次类型所能够完成的操作,就是这个类型能做什么。


3.2类型的使用:
1.创建对象
格式:new 构造器 ;
2.使用对象
格式: 变量.成员(属性/方法) ;

3.3面向对象编程步骤:
1.创建类型
2.通过类型创建对象
3.使用对象

TIPs:
1.专卖中的鞋,我们能实际触摸到的每一双鞋,叫做鞋的对象。
2.而我们创建对象使用的类型,就是工厂来制作鞋使用的图纸。


4.包名
用于管理我们的类。
1.创建包:包名命名:公司域名倒置.工作组名称.工程名
2.使用:在每个源文件第一行:package com.farsight.c17072.class2;
表明当前类型所处包,
这个类型以后完整的名称:包名+类名。
TIPs:在java中我们时常会出现类型重名的情况,这时候,我们就需要包名来进行区分。
TIPs:
com.farsight.c17072.class2包
com.farsight.c17072.class2.utils包
这两个包是完全无关的两个包,没有包含关系。

TIPs:在不同包中的类型,不能知道对象,要使用首先要导入包。
格式:
import com.farsight.c17072.class2.utils.Cat ; //导入指定包指定类型
import com.farsight.c17072.class2.utils.* ; //导入制定包所有类型

5.修饰词
访问控制修饰符:public : 公开(都可以用)
protected : 受保护(同一个包下,和子类中可以使用)
(没有修饰词): 默认(同一个包下可以使用)
private : 私有的(只能在本类使用)

TIPs:属性和方法必须有访问控制修饰符进行修身,如果不填写,那么就是默认。

static


final
7.面向对象的三大基本特征:
封装,继承,多态。

TIPs:接口:1.java中的一种类型定义语法。
2.别人写好的软件程序,暴露给我们的使用方法。


TIPs:类型名称,最好使用首字母大写。之后的单词首字母也大写。
驼峰标识:类名数字母大写,变量名首字母小写,方法名首字母小写。

方法参数列表的设置:
在方法名之后的小括号内可以声明一个变量,这个变量用来接收方法调用者传递到方法中来的数据。

TIPs:
1.属性定义了,却没有使用

1.1.属性的初始化:
1)javac这个编译器在编译代码时,会进行基本的语法检查,并且帮助我们把没有初始化的属性,进行初始化:
默认初始值:整型是0,浮点型0.0,字符型0,布尔型false,引用类型null。
2)java提供了一个叫构造器的类结构,专门完成属性的初始化。
构造器:
语法格式:访问控制修饰符 类名(参数列表){构造器代码}
TIPs: 构造器中的代码没有逻辑代码,只有对属性的初始化。

3)不写构造器,类型也会拥有。在编译过程中,编译器发现一个类型没有设置构造器,他自动为这个类型配置一个空参构造器:public Bear(){}。一旦我们为一个类型配置了一个构造器,编译器就不再自动添加空参构造器。
1.2.属性的意义:
属性:对方法的执行,构成影响。
方法:是否会对属性产生影响?
TIPs:变量的生命周期:在java中,变量定义在哪个{}中,他的作用域就在这个{}之中。
2.方法/构造器中参数的传递:java中变量都只是持有数据的地址,传递的也是地址,所以实质上说,统统都是引用传递。

对象:类型的具体实现,java中的一切皆是对象
类型: 类型是对象的模板,对象是类型的具体实现。
使用对象:
使用父类型或者本类型的变量,来持有本类型的对象
通过变量使用对象:通过 . 来调用对象的属性方法



返回值类型
每个方法在结束时,都会执行return;语句,表示方法结束并返回方法执行的结果。只是我们前面使用的方法都设置为void(无返回值),所以这个return语句我们可以省略。
使用返回值:
public 返回值的数据类型 方法名(){
//代码...
return 结果 ;
}

继承
面向对象的基本特征之一
能用于描述类与类之间的一种关系:一种类型属于另一种类型,我们就可以使用继承语法描述他们。
语法格式:
类型1 属于 类型2:
public class 类型1 extends 类型2{}

TIPs:子类:extends之前的类型叫子类。eq:Dog是Animal的子类。
父类:extends之后的类型叫父类。eq:Animal是Dog的父类。

作用:
子类型能得到父类型所有的成员。

TIPs:一般我们在设计程序时,会发现一些类型拥有相同的功能方法,这种情况我们就可以设置一个父类型,将这些相同的功能定义在父类型中。

限制:1.java中只能实现单根集成: 一个类型只能拥有一个父类。但是一个父类可以拥有多个子类。
2.private修饰的成员,子类能够继承到,但是无法访问。
3.子类能基础父类所有的成员:属性,方法。这里构造器是不能被继承的。
4.1)父类型的属性要被子类使用,请设置为protected。
2)我们可以私有化属性,通过方法来返回这个属性的数据。
TIPs: 这里我们更倾向于通过方法操作属性,为此我们通常会为我们的属性配置对应的setter和getter方法。由方法来完成属性的赋值与数据获取。

3.this/super
this代表本类当前对象。
super代表父类对象。
使用:
1. super()代表父类构造器
this() 代表本类其他构造器

2.通过this.属性/方法,调用本类的某个属性或者方法,这用于解决局部变量与属性同名问题。
super也可以这样使用:super.属性/方法。

TIPs:
构造器的限定条件:每个构造器的第一行都必须直接或间接调用父类构造器。如果父类型有空参构造器,那么可以省略。

4.构造器重载:
我们可以为一个类型定义多个构造器,这多个构造器主要实现以不同方式去初始化属性。
格式: 同名不同参。(主要是参数的类型以及顺序)
public 类名(){}


5.重写
子类型对父类的某个方法不满意,想要去修改,那么我们就需要使用重写这个语法规则。
语法格式:@override
在子类中重新定义一个父类的方法,并实现内部逻辑,这种操作就是方法重写。

作用:
1.覆盖父类的此功能。
2.扩展父类功能。

TIPs:子类重写了父类的这个方法,不代表父类此方法消失,我们依然可以在子类中通过super关键字来调用:super.eat() ;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值