没有合适的资源?快使用搜索试试~ 我知道了~
java面向对象精华总结.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 183 浏览量
2023-05-25
18:47:20
上传
评论
收藏 396KB PDF 举报
温馨提示
试读
12页
java面向对象精华总结
资源推荐
资源详情
资源评论
. . . .
Java 面向对象精华总结
面向对象是相对面向过程而言的,面向过程强调的是功能行为,面向对象是将功能封装进对
象,强调具备了功能的对象。
面试官若问什么是面向对象(开放式问题,回答必须有自己的体会):
1、 面向对象是一种思想,可以使复杂的问题简单化,可以使我们从执行者变成指挥者
2、 结合实际场景举个例子说明:面试官就是在用面向对象的思想思考问题,公司里面现在
有招人的需求,说明公司现在的业务量比较大,代表着公司在蓬勃发展,你需要找一些
具有专业编程经验的人来帮你完成公司的工作,我就是那个对象,我具备专业编程的功
能,你就是在指挥我做事情,就是使用我的功能,来为公司创造效益。【万物皆对象】
面向对象三大特征:封装、继承、多态
类和对象的关系:
类:对现实生活中事物的描述
对象:就是这类事物,实实在在存在个体
描述事物就是描述事物的属性(对应类中变量)和行为(对应类中方法),属性和行为共同
称为类的成员(成员变量和成员方法)
成员变量作用于整个类中,局部变量作用于函数中,或者语句中
成员变量在堆存中,因为对象的存在,才在存中存在,局部变量:存在栈存中
封装(Encapsulation):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:将变化隔离、便于使用、提高重用性、提高安全性
封装原则:将不需要对外提供的容都隐藏起来,把属性都隐藏,提供公共方法对其访问
private(私有):权限修饰符,用于修饰类中的成员(成员变量,成员函数),私有只在本
类中有效。
static 用于修饰成员(成员变量和成员函数)
被修饰的成员:随着类的加载而加载,优先于对象存在,被所有对象所共享,可以直接被类
名调用。类名.静态成员 【方法区、共享区、数据区】----存放类中的方法和共享数据。
什么时候定义静态函数:当功能部没有访问到非静态数据(对象的特有数据),那么该功能
可以定义成静态的,用类名直接调用。
Eg:获取数组的最大值
class ArrayTool
{
public static void main(String[] args)
{
int[] arr={5,8,4,1,3,5,8,77,55,99};
int max=GetMax.getMax(arr);
System.out.println("max="+max);
}
}
class GetMax
{
public static int getMax(int[] arr)
{
int max=0;
for(int x=0;x<arr.length;x++)
. . . . .
. . . .
{
if(arr[x]>arr[max])
max=x;
}
return arr[max];
}
}
构造代码块(定义对象共性初始化容):给对象进行初始化,对象立,就运行,而且优先于
构造函数执行。
构造代码块是给所有对象进行统一初始化,而构造函数是给对应对象进行初始化。
this 关键字:代表它所在函数所属对象的引用。
简单说:哪个对象在调用 this 所在的函数,this 就代表那个对象。
构造函数间调用只能用 this 语句,this 语句只能放在构造函数第一行,因为初始化动作要
先执行,构造函数的权限和类的权限一致。
静态代码块(可以验证类是否加载):
格式:
static
{
静态代码块中的执行语句。
}
特点:随着类的加载而加载,只执行一次,并优先于主函数,一般用于类的初始化。
Person p = new Person("zhangsan",20);
该句话都做了什么事情?
1,因为 new 用到了 Person.class.所以会先找到 Person.class 文件并加载到存中。
2,执行该类中的 static 代码块,如果有的话,给 Person.class 类进行初始化。
3,在堆存中开辟空间,分配存地址。
4,在堆存中建立对象的特有属性。并进行默认初始化。
5,对属性进行显示初始化。
6,对对象进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将存地址付给栈存中的 p 变量
设计模式:解决某一类问题最行之有效的方法,java 中有 23 中设计模式
单例设计模式:解决一个类在存只存在一个对象
1、 避免其他程序过多建立该类对象,禁止其他程序建立该类对象(将构造函数私有化)
2、 为了让其他程序可以访问到该类对象,在本类中,自定义一个对象(在类中创建一个本
类对象)
3、 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式(提供一个方法可
以获取到该对象)
对于事物该怎么描述就怎么描述,当需要将该事物的对象保证在存中唯一时,就将以上的三
步加上即可。
方法被调用只有两种方式:对象调用和类名调用(static)
Eg: class SimpleDemo//单例设计模式
{
. . . . .
. . . .
public static void main(String[] args)
{
Student s1=Student.getInstance();
Student s2=Student.getInstance();
s1.setAge(20);
s1.setName("HuangQin");
System.out.println(s2.getAge()+";"+s2.getName());
}
}
class Student
{
private String name;
private int age;
public void setAge(int age)
{
this.age=age;
}
public int getAge()
{
return age;
}
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
private Student(){}
public static Student s=new Student();//先初始化对象,称为:饿汉式类一进存,
就创建对象,设计建议饿汉式
public static Student getInstance()
{
return s;
}
}
/* class Student
{
private static Student s=null;//懒汉式,延迟加载,调用 getInstance 方法时,才
建立对象
private Student(){}
public static Student getInstance()
{
. . . . .
剩余11页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 60
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功