java基础知识(5)(方法、面向对象)

1.方法的概述和定义格式

    /*
     * 方法:其实就是完成特定功能的代码块
     * 
     * 定义格式:
     *      修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...) {
     *          方法体;
     *          return 返回值;
     *      }
     * 格式解释:
     *      A:修饰符   目前记住public static
     *      B:返回值类型 用于限定返回值的数据类型
     *      C:方法名   为了方便我们调用方法的名字
     *      D:参数类型  用于限定调用方法时传入的数据的类型
     *      E:参数名   用于接收调用方法时传入的数据的变量
     *      F:方法体   完成功能的代码
     *      G:return 结束方法,并且把返回值带给调用者
     * 
     * 写一个方法有两个明确:
     *      A:返回值类型 明确功能结果的数据类型
     *      B:参数列表      明确有几个参数,以及参数的数据类型


2.方法的调用
    /*
     * 方法的调用:(有明确返回值的方法调用)
     *      A:单独调用,没有意义
     *      B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作
     *      C:赋值调用,推荐方式
     */

     * 
     * 如果一个方法没有明确的返回值类型,也不能把返回值类型的地方空出来,应该写void表示该方法无返回值类型。
     * 
     * 方法调用:(void修饰的方法的调用)
     *      只能单独调用
     * 
     */


3.方法的重载

    /*
     * 方法重载:在同一个类中,出现了方法名相同的情况。
     * 方法重载的特点:
     *      方法名相同,参数列表不同。与返回值无关。
     *      参数列表不同:
     *          参数的个数不同
     *          参数对应的数据类型不同
     * 
     * 注意:
     *      在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法。
     */

4.方法的形式参数和实际参数

    /*
     * 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。
     * 
     * 形式参数:用于接收实际参数的变量
     * 实际参数:实际参与运算的变量
     */

    /*
     * 如果参数是引用数据类型:
     *      形式参数的改变直接影响实际参数
     */



1.面向对象思想的概述
    /*
     * 面向对象思想:
     *      面向对象是基于面向过程的编程思想。
     * 
     *      面向过程:强调的是每一个功能的步骤
     *      面向对象:强调的是对象,然后由对象去调用功能
     * 
     * 面向对象的思想特点:
     *      A:是一种更符合我们思考习惯的思想
     *      B:可以将复杂的事情简单化
     *      C:将我们从执行者变成了指挥者
     * 
     * 举例:
     *      买电脑:
     *          面向过程:我要买电脑--我要明确买电脑的意义--上网查对应的参数信息--去中关村买电脑--讨价还价--买回电脑
     *          面向对象:我要买电脑--班长去给我买电脑--买回电脑
     *      洗衣服:
     *          面向过程:把衣服脱下来--找一个盆--放点洗衣粉--加点水--浸泡10分钟--揉一揉--清洗衣服--拧干--晾起来
     *          面向对象:把衣服脱下来--打开全自动洗衣机--扔衣服--按钮--晾起来
     */

2.类及其成员的解释说明

    /*
     * 我们学习编程语言,其实就是为了把现实世界的事物模拟出来,实现信息化。
     * 
     * 我们是如何表示现实世界的事物的呢?
     *      A:属性    就是事物的描述信息
     *      B:行为    就是事物能够做什么
     *      举例:学生
     * 
     * Java语言最基本的单位是类,所以,我们在后面的学习过程中,是通过类来体现现实世界事物的。
     * 
     * 类:是一组相关的属性和行为的集合
     * 对象:就是该事物的具体体现
     *      举例:
     *          类       学生
     *          对象      班长
     */

3.类及其成员的定义

    /*
     * 类的定义:
     *      类是用来描述现实世界的事物的
     * 
     * 事物:
     *      属性  事物的描述信息
     *      行为  事物能够做什么
     * 
     * 类是如何和事物进行对应的呢?
     *      类:
     *          成员变量
     *          成员方法

4.成员变量与成员方法

     * 成员变量:和我们前面学习过的变量的定义是一样的。
     *      位置不同:类中,方法外
     *      初始化值:不需要给初始化值
     * 成员方法:和我们前面学习过的方法的定义是一样的。
     *      去掉static关键字
     */

5.如何创建对象

    /*
     * Student是一个学生事物描述类,main方法不适合放在它里面。
     * 
     * 使用一个类,其实就是使用该类的成员。(成员变量和成员方法)
     * 而我们要想使用一个类的成员,就必须首先拥有该类的对象。
     * 我们如何拥有一个类的对象呢?
     *      创建对象就可以了?
     * 我们如何创建对象呢?
     *      格式:类名 对象名 = new 类名();
     * 对象如何访问成员呢?
     *      成员变量:对象名.变量名
     *      成员方法:对象名.方法名(...)
     */

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

    /*
     * 成员变量和局部变量的区别:
     *      A:在类中的位置不同
     *          成员变量:类中,方法外
     *          局部变量:方法中或者方法声明上(形式参数)
     *      B:在内存中的位置不同
     *          成员变量:堆内存
     *          局部变量:栈内存
     *      C:生命周期不同
     *          成员变量:随着对象的创建而存在,随着对象的消失而消失
     *          局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
     *      D:初始化值的问题
     *          成员变量:有默认值
     *          局部变量:没有默认值。必须先定义,赋值,最后使用
     */

7.private关键字

    /*
     * 学生类
     * 
     * 通过对象直接访问成员变量,会存在数据安全问题
     * 这个时候,我们就想能不能不让外界的对象直接访问成员变量呢?
     * 能。
     * 如何实现呢?
     *      private关键字
     * 
     * private:
     *      是一个修饰符
     *      可以修饰成员变量,也可以修饰成员方法
     *      被private修饰的成员只能在本类中被访问
     * 
     * 针对private修饰的成员变量,我们会相应的提供getXxx()和setXxx()用于获取和设置成员变量的值,方法用public修饰
     */

8.this关键字
    /*
     * 学生类
     * 
     * 起名字我们要求做到见名知意。
     * 而我们现在的代码中的n和a就没有做到见名知意,所以我要改进。
     * 
     * 如果有局部变量名和成员变量名相同,在局部使用的时候,采用的是就近的原则。
     * 
     * 我们有没有办法把局部变量的name赋值给成员变量的name呢?
     * 有。
     * 
     * 什么办法呢?
     *      用this关键字就可以解决这个问题
     * 
     * this:代表所在类的对象引用
     *      方法被哪个对象调用,this就代表那个对象
     * 
     * 使用场景:
     *      局部变量隐藏成员变量
     */

9.构造方法的格式和注意事项

    /*
     * 构造方法:
     *      给对象的数据进行初始化
     * 
     * 格式:
     *      方法名和类名相同
     *      没有返回值类型,连void都不能写
     *      没有具体的返回值
     * 
     * 构造方法的注意事项:
     *      A:如果我们没有给出构造方法,系统将会提供一个默认的无参构造方法供我们使用。
     *      B:如果我们给出了构造方法,系统将不在提供默认的无参构造方法供我们使用。
     *        这个时候,如果我们想使用无参构造方法,就必须自己提供。
     *        推荐:自己给无参构造方法
     *      C:构造方法也是可以重载的
     * 
     */

10.构造方法的使用
//如何调用构造方法呢?
//通过new关键字调用
//格式:类名 对象名 = new 构造方法(...);


11.类名作为形式参数:其实这里需要的是该类对象。
12.如果方法的返回值是类名:其实返回的是该类的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值