1.面向对象和面向过程区别:都是一种思维方式,是一种思想。
面向过程:我应该怎么去做?然后一步步去实现。
面向对象:我应该让谁去做,不关注具体如何实现,只关注的是对象。
2.面向对象的优点:
1)更贴近于现实生活
2)面向对象可以将复杂的问题简单化
3)面向对象贴近管理者的角度,面向过程体现于执行者
3。如何使用面向对象的思维方式进行编程:、
想要程序的现实生活挂上关系,所以提供的两个概念:类 对象
类:现实生活中一系列事物的模板
对象:具体的某个事物
4.自定义类或者模板类或者javabean
一个事物有属性 和它有的功能
定义一个类: public class 类名{
//成员变量
修饰符 数据类型 变量名 = 赋值;
//成员方法
修饰符 返回值类型 方法名([参数]){
方法体
}
}
5.static 关键字 (静态的意思)
static修饰变量 叫: 静态变量|类变量。只能修饰成员变量,不能修饰局部变量
static修饰方法 叫:静态方法|类方法
static 修饰的内容的使用方式:
1)类名.被修饰的变量名或方法名()
2)对象.被修饰的变量名或方法名()
注意:1)静态的内容是属于类的,成员的内容是属于对象的
2)静态的内容是独一份的,这个类的所有对象共享这个类中的静态内容
3)在静态的内容中只能直接使用静态的内容,不能直接使用成员的内容(只有对象使用)
4)非静态的内容中,可以直接使用成员的内容,可以直接使用静态的内容
6.new关键字:
创建类型的引用
数据类型 引用名|变量名 = new 数据类型(); --创建一个对象,new是用来创建对象的
使用功能|属性:
引用.功能名字()|属性名字
new创建对象做的三件事:
1)在堆中为对象开辟空间,成员属性会跟随对象进入到堆内存并赋值为默认值
2)调用构造器为对象初始化信息
3)将地址值返回给引用
构造器或者构造方法或者构造函数
构造器是一个特殊的方法,只能和new一起使用
作用:
初始化对象信息,不是用来创建对象的
定义:
构造方法的名字必须与当前的类名一致,不需要返回值不需要void
修饰符 类名([参数列表]){
。。。。
}
如果没有自定义构造器,编译器会自动为你添加空构造器(不带参数的构造器)
如果存在自定义构造器,编译器不会自动提供构造器,包括空构造器
构造器是方法,也就是可以构成方法的重载。(构造器重载)
调用不同的构造器,看创建对象时候()中参数列表匹配哪一个构造器的参数列表
修饰符可以是private,私有的,只能在本类中使用(单例)
构造器不能使用 final,static ,abstract 修饰
特殊的方法只能通过new的使用来使用,可以重载但是没有返回值和void,区分重载构造器看new后()的参数
6.1 this关键字
指代当前new的对象,存储的就是当前对象的地址
1)在构造器的首行通过this调用当前其他构造器
this();------>()匹配构造器的参数
2)区分同名成员变量和局部变量
如果不使用this,会发生就近原则
在构造器中,this指代当前new的对象
在方法中,this指代当前调用成员方法的这个对象
如果不存在同名变量的问题,默认省略this
如果存在同名变量的问题,默认就近原则,区分成员,this.,this.不能省略。
注意:
1)在构造器的首行调用其它构造器的时候不能相互调用
2)如果不使用,会发生就近原则
3)this不能使用在static修饰的方法中
7.关键字private (私有的)
为了解决安全隐患;在外部不能直接使用对象的属性
而private 可以修饰成员变量,不能修饰局部变量
私有的内容只能在当前类中使用
7.1如何使用私有的属性:
对使用的属性提供公共的访问方式 setter 设置器 getter 访问器
7.2 面向对象的三大特征之一:
1)封装:对外隐患内部的实现细节,提供公共的访问方式就是封装
2)属性私有,公共的访问方式是封装的一个具体的实现(不能说封装是私有)
3)类或者方法都死封装的体现
写模板类,属性都需要私有,提供公共的访问方式
7.3模板类或者实体类或者javabean
1)类是公共的public修饰
2)至少存在一个空构造
3)属性私有
4)公共的访问方式
8.块 block ---->自成作用域
{}–>方法中,局部代码块|普通语句块 执行时机:调用方法
{}—>类中方法外,构造块 执行时机:创建对象
static{{}----->静态块
1)构造块先于构造器执行,如果有多个构造块,从上到下依次执行
2)静态{}在第一次加载类的时候只执行一次,先于主方法执行,如果有多个静态块,从上到下依次执行
注意:代码执行顺序:静态块—>main---->构造块------>构造器
细节:构造块在编译的时候会被放在构造器语句块中代码的最上面,如果存在this调用其他构造器,必然先调用其他构造器,因为this必须存在于首行才能调用其他构造器
9.导包
1)模糊匹配 * 2)会拖慢编译效率,不会拖慢运行速度
import java.util.*;
import static java.lang.Math.PI;
import static java.lang.Math.sqrt;
静态导入:单独导入类中的静态的内容
可以导入变量可以导入方式
10.回收机制
System.gc() 通知系统回收,但是无权决定是否回收,什么时候回收
finalize()在垃圾回收机制来回收垃圾第一步会调用的方法
一定会调用finalize()方法的两种情况:
1)匿名对象
2)对象无引用状态
Java基础知识-面向对象
本文深入讲解面向对象与面向过程的区别,探讨面向对象编程的优势,并详细介绍类、对象、构造器、this关键字、私有属性及封装等核心概念。

被折叠的 条评论
为什么被折叠?



