Java工程师之面向对象

类、对象

定义:具有相同属性和行为的对象的统称。
对象:类的某一具体代表
属性:对象具有的各种特征
行为:对象能够进行的操作

定义类的步骤:

1.定义类名(类名首字母必须大写)
2.编写类的属性
3.编写类的方法
如:public class Foo{
属性1 值1,属性2 值2;
public void 方法名(){
//方法体
}

}

使用对象的步骤

1.创建对象
类名 对象名 = new 类名 ();
Animal dog = new Animal();
2.使用对象
引用对象的属性:对象名. 属性
dog.age=2; //给age属性赋值

引用对象的方法:对象名.方法名()
dog.eat(); //调用eat()方法

成员变量和局部变量

1.成员变量:
在类中定义,描述类将具备什么

2.局部变量:
在类的方法中定义,在方法中临时保存数据

区别:
1.作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部

2.初始值不同
Java会给成员变量赋一个初始值,不会给局部变量赋初始值

3.同名问题
在同一方法中,不允许有同名的局部变量(同一类)
在不同的方法中,允许有同名的局部变量(同一类)

4.优先级
当局部变量与成员变量同名时,局部变量有优先级

构造方法:
1、使用“new+构造方法“可以创建一个对象
2.通常使用构造方法初始化对象
3构造方法名与类同名且没有返回值

构造方法的语句格式:
public 构造方法名(){
//初始化代码
}

a.无参的构造方法(创建类的实例化,即对象)

b.有参的构造方法(作用:为成员变量赋值)
public Animal(string newName.int newAge){
name=newName;
age=newAge;
}

特点:
1)当没有指定构造方法,系统会自动地添加无参的构造方法
2)当有构造方法,无论是有参还是无参的,系统都不会自动添加无参的构造方法
3)构造方法的重载:
方法名相同,但参数不同的多个方法,调用时自动根据不同参数选择象印的方法
4)构造方法给对象的属性赋值时,会赋一个合理的值

注意:如果没有无参的构造方法,系统会自动创建无参的构造方法;如果有一个有参的构造方法,此时需要我们手动创建一个无参的构造方法!

static
静态成员(类成员):被static修饰的成员,属于整个类,不属于某个单独的对象。
访问方式:
a.使用类名直接访问(类名.静态成员
b.使用对象名访问(对象名.静态成员

静态方法(类方法):被static修饰的方法
访问方式:
a.使用类名直接访问(类名.静态方法
b.使用对象名访问(对象名.静态方法

静态初始化块
static {

}
只能为静态变量赋值,且仅在类加载时执行,仅执行一次。
当存在初始化块、静态初始化块、构造方法时,输出顺序为:静态初始化块.>初始化块>构造方法。

封装

概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

好处:提高程序安全性,增加代码重用性。

封装的实现步骤:
a.修改属性可见性(设为private)
b.创建getter/setter方法(用于属性的读写)
c.在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)

包:
管理Java文件,解决同名文件冲突

定义包:
package 包名;
必须放在Java源程序第一行,包名间可以使用“."隔开
eg: com.io.mylan

系统中的包:
java.(功能).(类)
java.lang.(类)包含java语言基础的类
java.util.(类)包含java语言中的各种工具类
java.io.(类)包含输入、输出相关功能的类

访问控制符
类:public、默认
属性和方法:public 、 protected、 默认 、 private

this关键字代表当前对象
this.属性------操作当前对象属性
this.方法------调用当前对象的方法

内部类(Inner Class)
定义在一个类里面的类,包含内部类的类称为外部类

主要作用:
a提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类
b.内部类的方法可以直接访问外部类的所有数据,包括私有的数据
c.内部类所实现的功能使用外部类同样可以实现,只是使用外部类有时更方便

成员内部类也称为普通内部类
使用方法:
1.必须使用外部类对象来创建内部类对象,不能直接去new一个内部类对象。(内部类 对象名=外部类对象. new内部类(); )

2.成员内部类的.class文件:外部类名$内部类名.class
注意:
外部类是不能直接使用内部类的成员和方法,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。

静态内部类是static修饰的内部类

方法内部类:
方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。

继承

概念:继承是类与类的一种关系,是一种“is a”的关系
好处:子类直接拥有父类的所有属性和方法(private修饰的无效)
实现代码复用

语法规则:class 子类 extends 父类

继承的初始化顺序:
先初始化父类再初始化子类
先初始化成员变量再初始化构造方法

final关键字
可以修饰类、方法、属性
final修饰类时,该类不允许被继承
final修饰方法时,该方法不允许被覆盖(重写)
final修饰属性时,该属性不能进行隐式初始化(类的初始化属性必需有值)或在构造方法中赋值

super关键字:
在对象的内部使用,可以代表父类对象
1.访问父类的属性:
super.属性
2,访问父类的方法:
super.方法

子类的构造过程中必须调用其父类的构造方法

多态------对象的多种形态

1.引用多态
父类的引用可以指向本类的对象Person p =new Person();
父类的引用可以指向子类的对象Person p1=new People();

2.方法多态
创建本类对象时,调用方法为本类方法
创建子类对象时,调用的方法为子类重写的方法或者继承的方法

引用类型转换:
1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换
2向下类型转换(强制类型转换),是大类型到小类型.
**instanceof运算符,来解决引用对象的类型,避免类型转换的安全性问题

抽象类
定义:抽象类前使用abstract修饰

作用:限制规定子类必须实现某些方法,但不关注实现细节
抽象方法没有方法体以分号结束。

使用规则:
a.abstract定义抽象类
b.abstract定义抽象方法,只有声明,不需实现
c.包含抽象方法的类是抽象类
d.抽象类中可以包含普通的方法,也可以没有抽象方法

接口:
概念:一种特殊的类,由全局常量和公共的抽象方法所组成。
使用interface关键字定义,是一种规范,限制类里必须提供某些方法。

语法:
【修饰符】 interface 接口名 【extends 父接口1,父接口2.……】
{
零到多个常量定义……
零到多个抽象方法的定义……
}
接口就是被用来继承、实现的,修饰符一般建议用public
(不能使用private和protected修饰接口)

使用接口:
一个类可以实现一个或多个接口,实现接口使用implements关键字,Java中的一个类只能继承一个父类是不够灵活的,通过实现多个接口可以做补充。

继承父类实现接口的语法为:
【修饰符】class 类名 extends 父类 implements 接口1,接口2……
{

}
如果要继承父类,继承父类必须在实现接口之前。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值