面向对象概述

2259-马同学

发表文章数:15

热门标签

首页 » Java » 正文

1.1 类与对象案例:
下面展示一些 内联代码片

package com.itheima_02;
/*
 * 类的定义:类是用来描述现实世界事物的
 * 事物:
 *      属性
 *      行为
 * 类如何和事物进行对应的呢?
 *      类:
 *          成员变量
 *          成员方法
 * 
 * 成员变量:和我们学习过的变量的定义是一样的,有两个小区别。
 *      位置不同:类中,方法外
 *      初始化值:成员变量不需要给初始化值也可以使用,因为它有默认值
 * 成员方法:和我们学习过的方法的定义是一样的,有一个小区别。
 *      去掉了修饰符中的static关键字
 * 
 * 需求:定义一个学生类。
 * 
 * 学生事物:
 *      属性:姓名,年龄...
 *      行为:学习,吃饭...
 * 
 * 学生类:
 *      成员变量:姓名,年龄...
 *      成员方法:学习,吃饭...
 */
public class Student {
    //成员变量
    //姓名
    String name;
    //年龄
    int age;
    
    //成员方法
    //学习的方法
    public void study() {
        System.out.println("好好学习,天天向上");
    }
    
    //吃饭的方法
    public void eat() {
        System.out.println("学习饿了要吃饭");
    }
}

1.2 案例代码
下面展示一些 内联代码片

package com.itheima_02;
/*
 * 类的使用:
 *      使用一个类,其实就是使用该类的成员。(成员变量和成员方法)
 * 而我们要想使用一个类的成员,就必须先拥有该类的对象。
 * 那么我们如何拥有一个类的对象呢?
 *      创建对象就可以了
 * 我们如何创建对象呢?
 *      格式:
 *          类名  对象名  = new 类名();
 * 对象如何访问成员呢?
 *      成员变量:
 *          对象名.成员变量
 *      成员方法:
 *          对象名.成员方法(...)
 */
public class StudentTest {
    public static void main(String[] args) {
        //类名  对象名  = new 类名();
        Student s = new Student();
        //System.out.println("s:"+s);//com.itheima_02.Student@da6bf4
        
        //使用成员变量
        System.out.println("姓名:"+s.name);//null
        System.out.println("年龄:"+s.age);//0
        System.out.println("----------");
        
        //给成员变量赋值
        s.name = "林青霞";
        s.age = 30;
        //再次使用成员变量
        System.out.println("姓名:"+s.name);//林青霞
        System.out.println("年龄:"+s.age);//30
        System.out.println("----------");
        
        //调用成员方法
        s.study();
        s.eat();
    }
}

2.2 两个对象的内存图(共用方法区)
下面展示一些 内联代码片

package com.itheima_03;
/*
 * 手机类的测试类
 */
public class PhoneDemo2 {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.brand = "小米5s";
        p.price = 1999;
        p.color = "银色";
        System.out.println(p.brand+"---"+p.price+"---"+p.color);
        p.call("林青霞");
        p.sendMessage();
        
        Phone p2 = new Phone();
        p2.brand = "IPhone7S";
        p2.price = 7999;
        p2.color = "土豪金";
        System.out.println(p2.brand+"---"+p2.price+"---"+p2.color);
        p2.call("张曼玉");
        p2.sendMessage();
    }
}

面向对象概述
2.4 成员变量和局部变量区别
下面展示一些 内联代码片

package com.itheima;
/*
 * 成员变量和局部变量的区别:
 *      A:在类中的位置不同
 *          成员变量:在类中,方法外
 *          局部变量:在方法中或者方法声明上(形式参数)
 *      B:在内存中的位置不同
 *          成员变量:在堆内存
 *          局部变量:在栈内存
 *      C:生命周期不同
 *          成员变量:随着对象的创建而存在,随着对象的消失而消失
 *          局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
 *      D:初始化值不同
 *          成员变量:有默认值
 *          局部变量:没有默认值,必须先定义,赋值,最后使用
 */
public class VariableDemo {
    int x;
    
    public void show() {
        int y = 10;
        
        System.out.println(x);
        System.out.println(y);
    }
}

private关键字的概述和特点
下面展示一些 内联代码片

package com.itheima_01;
/*
 * 直接使用对象名访问成员变量,会存在数据的安全问题
 * 这个时候,我们就应该思考能不能让外界不要直接访问成员变量?
 * 能
 * 如何实现呢?
 *      用private关键字
 * private:
 *      是一个修饰符
 *      可以修饰成员变量,也可以修饰成员方法
 *      被private修饰的成员只能在本类中被访问
 * 
 * 针对被private修饰的成员变量,我们会相应的给出getXxx()和setXxx()用于获取和设置成员变量的值,
 * 方法用public修饰
 */
public class Student {
    String name;
    //int age;
    private int age;
    
    public void setAge(int a) {
        if(a<0 || a>200) {
            System.out.println("你给的年龄有误");
        }else {
            age = a;
        }
    }
    
    public int getAge() {
        return age;
    }
    
    public void show() {
        System.out.println(name+"***"+age);
    }
}


package com.itheima_01;
/*
 * 测试类
 */
public class StudentTest {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();
        s.show();
        
        //给成员变量赋值
        s.name = "林青霞";
        //s.age = 30;
        //s.age = -30;
        //通过方法赋值
        s.setAge(-30);
        s.show();
    }
}

标签:

未经允许不得转载:作者:2259-马同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《面向对象概述》 发布于2021-10-12

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录