java基础第五天——面向过程及其方法

来源:互联网 发布:手机淘宝如何应聘客服 编辑:程序博客网 时间:2024/05/29 08:04
面向对象思想
面向过程:关注的是步骤和过程
面向对象:关注的是对象
面向对象是基于面向过程的
面向对象的特点:
a: 是一种更符合人们思考习惯的思想
b: 把复杂的事情简单化了

c: 从执行者变成指挥者

—————————————————————————————

类与对象以及引用

事物
属性 成员变量 
行为 成员方法


属性: 就是事物的描述信息
行为: 就是该事物可以做到事情


成员变量: 和之前定义变量一样,只不过位置不同. 在类中方法外
成员方法: 和之前定义方法一样,只不过去掉static
—————————————————————————————

类: 就是一组相关属性和行为的集合,是一个抽象的东西
对象: 就是该类的一个具体体现
举例:
学生
班长 对象


定义类:
学生类
手机类
使用类:
创建对象: 格式: 类名 对象名 = new 类名();
访问成员变量的格式: 对象名.变量名 ;

访问成员方法的格式: 对象名.方法名(...)

—————————————————————————————

对象内存图
一个对象的内存图 对象如何在内存中构建的
二个对象的内存图 每new一次会在堆内存中,重新开辟空间

3个引用两个对象的内存图我们栈内存中的多个引用可以指向堆内存中的同一个地址.

—————————————————————————————

局部变量和成员变量的区别

a: 在类中的位置不同
局部变量: 方法定义中或者方法声明上的变量
成员变量: 在类中方法外
b: 在内存中的位置不同
局部变量: 在栈内存
成员变量: 在堆内存
c: 生命周期不同:
局部变量: 随着方法的调用而产生,随着方法的消失而消失
成员变量: 随着对象的创建而产生,随着对象的消失而消失
d: 默认值的问题:
成员变量: 有默认值(系统给定)
局部变量: 没有默认值,必须先赋值,然后在使用

—————————————————————————————
变量的访问注意事项:
a: 局部变量可以和成员变量的名称一致
b: 变量在访问的时候遵循"就近原则"
java语言的参数传递问题


基本数据类型参数传递,形式参数的改变对实际参数没有影响
引用数据类型的参数传递,形式参数的改变对实际参数是有直接影响的
java语言中只有值传递 ,没有引用传递.


一个方法上如果形式参数是类 类型的变量,我们如何调用?
如果以后看到某一个方法上的形式参数是一个类类型的变量,那么在调用的时候需要传递一个该类的对象,实际上传递的是一个地址值
—————————————————————————————

匿名对象
匿名对象: 没有名字的对象
Student s = new Student();

// 匿名对象
new Student();

作用:
a: 调用方法,仅仅调用一次
b: 作为参数传递
封装(private)

private特点:
a: private是一个修饰符
b: private可以修饰成员变量也可以修饰成员方法
c: 被private修饰的成员只能在本类中使用
this关键字


this关键字:代表的是本类对象的一个引用,谁调用我方法中的this就代表谁.
this存在的解决的问题:

就是局部变量隐藏了成员变量的时候,我们可以通过this来明确访问的是成员变量

—————————————————————————————

构造方法: 用来给类的成员进行初始化操作

格式: 
修饰符 类名 (参数列表) {
...
}

构造方法的特点:
1, 方法名与类名相同
2,没有返回值,也没有返回值类型,连void也没有


构造方法什么时候会被调用执行?
只有在创建对象的时候才可以被调用
—————————————————————————————
方法的划分:
按照返回值划分:
有返回值的方法
没有返回值的方法
按照参数来划分:
有参数的方法
没有参数的方法
—————————————————————————————
类的初始化过程:
Person p = new Person();
1,将Person.class 文件加载到内存中
2, 在栈空间中开辟一个空间,用来存储 Person类型 变量 p
3, 在堆内存中开辟一个空间,用来存储 new Person()对象中的成员信息
4, 为对象中的成员变量执行默认初始化操作
    String name = null;
5, 为对象中的成员变量执行显示初始化操作
String name = "小明";
6, 执行构造方法,通过构造方法为当前对象中的成员变量初始化赋值
7, 将new Person()的地址引用 赋值给 变量p
—————————————————————————————
static : 关键字, 静态的意思
可以用来修饰类中的成员(成员变量,成员方法)
注意: 也可以用来修饰成员内部类

特点:
被静态所修饰的成员,会被所有的对象所共享
被静态所修饰的成员,可以通过类名直接调用,方便
Person.country = "中国";
Person.method();

注意事项:
静态的成员,随着类的加载而加载,优先于对象存在
在静态方法中,没有this关键字
静态方法中,只能调用静态的成员(静态成员变量,静态成员方法)

静态变量和成员变量的区别?
内存中的位置:
静态变量: 在方法区的静态区中
成员变量: 在堆内存中

生命周期:
静态变量: 随着类的加载而存在,随着类的消失而消失
成员变量: 随着对象的创建而存在, 随着对象的消失而消失

调用方式:
静态变量: 通过对象名方式调用,也可以通过类名方式调用
p.age
Person.age
成员变量: 通过对象名方式调用
p.age

所属不同:
静态变量,随着类的加载而存在,与类相关的,类变量
成员变量:随着对象的创建而存在,与对象相关的,实例变量,成员变量
—————————————————————————————
main主方法的解释
public static void main(String[] args){}

public : 公共的意思,它是一个权限修饰符,代表着最大的访问权限,为了让JVM使用,设置权限最大
static : 静态的意思,静态修饰的方法可以类名直接调用,无需创建对象,方便JVM使用
void   : 返回值类型为空,代表没有数据返回,该方法由JVM调用,返回结果我们获取不到,所以不需要返回值
main   : 不是关键字,但是会被JVM所识别,代表着程序的执行入口
String[] args : 代表的是一个字符串数组, 早期用它来接收键盘输入的数据
java Demo "abc" "def" "11" "22" 

—————————————————————————————

帮助文档的制作方式:
编写文档注释:
@version 版本号
@author 作者
@param  参数的描述
@return 返回值的描述

通过javadoc工具,生成html 网页格式的帮助文档
javadoc -d doc -version -author ArrayTools.java

-d doc : 代表生成的帮助文档目录
-version -author : 生成的文档中包含作者与版本号信息
ArrayTools.java : 代表需要生成文档的java源文件
—————————————————————————————
Math: 数学工具类
public static double random()
返回一个 0.0<=x<1.0之间的随机小数, 有效长度为小数点后15到17位之间

获取一个1-100之间的随机整数
int num = (int)(Math.random()*100+1);
—————————————————————————————
代码块:
局部代码块:定义在方法中的,用来限制变量的作用范围
构造代码块:定义在类中方法外,用来给对象中的成员初始化赋值
静态代码块:定义在类中方法外,用来给类的静态成员初始化赋值
同步代码块:多线程部分详解

代码块的执行顺序:
静态代码块 --> 构造代码块 --> 构造方法


1 0
原创粉丝点击