面向对象

package com.tonghui.day07;
public class Student {

    // 属性:用成员变量表示
    /**
     * 学生姓名
     */
    String name;
    /**
     * 年龄
     */
    int age;
    /**
     * 体重
     */
    double weight;
    /**
     * 性别
     */
    String sex;

    //行为:用成员方法表示(没有static关键的方法)

    /**
     * 行为: 学习方法
     */
    public void study(){
        System.out.println("好好学习");
    }
    /**
     * 行为: 打游戏
     * @param gameName 游戏名称
     */
    public void playGame(String gameName){
        System.out.println("喜欢打"+gameName);
    }
}
//不用
Student su = new Student();
su.name="张三";
//使用get和set对成员属性进行赋值和获取
/**
* 获取name值
*/
public String getName(){
    return name;
}
/**
* 设置name值
*/
public void getName(String name){
    this.name=name
}
//所有的成员变量都要加上private关键词
//作用:属性私有化,其他类访问不到成员变量,只能被本类访问
//public
//作用:成员行为公开,所有类都可以访问到
//Refrigerator.java
package com.tonghui.day07;

/**
 * @author TongHui
 * @date 2023.04.06 10:43
 */
public class Refrigerator{
    /**
     * 放进的物品
     */
    private String name;

    /**
     * 打开冰箱门
     */
    public void openDoor(){
        System.out.println("打开门");
    }
    /**
     * 把物品 放进冰箱
     */
    public void push(){
        System.out.println("把"+name+"放进冰箱");
    }
    /**
     * 关门
     */
    public void closeDoor(){
        System.out.println("关上冰箱门");
    }
    /**
     * 设置name
     * @param name 需要放进冰箱的物品
     */
    public void setName(String name) {
        this.name = name;
    }
}
//Test.java
package com.tonghui.day07;

/**
 * @author TongHui
 * @date 2023.04.06 10:41
 */
public class Test {
    public static void main(String[] args) {
        Refrigerator refrigerator = new Refrigerator();
        refrigerator.setName("大象");
        refrigerator.openDoor();
        refrigerator.push();
        refrigerator.closeDoor();
    }
}
//使用构造方法
//特点:
//类型和方法名相同
//没有返回值类型,连void都不能写

//调用格式
//new 类名(参数)

//每一个类都默认的一个无参构造器
//一旦写了有参的构造器 那么无参构造器就没了

//构造器与set方法给属性赋值的区别: 
//构造器只能给属性赋值一次(只适合于参数不多的情况)
//set方法可以多次

:::tips
一个类就是一个数据类型
:::

//1.定义位置
//成员变量:定义在类中方法外 作用于整个类
//局部变量:定义在方法内或方法生命上作用与方法里
//2.在内存中的位置
//成员变量在:堆内存中
//局部变量在:栈内存中
//3.生命周期
//成员变量:随着对象的创建而创建,随着对象的消失而消失
//局部变量:随着方法的调用而创建,随着方法的消失而消失
//4.初始化值
//成员变量有默认值
//局部变量没有默认值,必须赋值
//封装:
//就是将不想对外暴露的属性隐藏起来,对外提供一些方法供别人去操作,这样可以更安全,也可以提高代码的复用性
//this:
//可以用来区分局部变量和成员变量同名问题;
// this代表当前对象的引用 谁来调用这个方法 this就代表谁
//一个出租车 属性: 车牌 车型 所属公司
//行为: 载客 输出(尊敬的....乘客,....的车载您到了目的)
package com.tonghui.day07;

/**
 * 出租车的类
 * @author TongHui
 * @date 2023.04.06 16:18
 */
public class Taxi {
    /**
     * 车牌
     */
    private String id;
    /**
     * 所属公司
     */
    private String firm;
    /**
     * 车型
     */
    private String type;

    public Taxi() {
    }

    public Taxi(String id, String firm, String type) {
        this.id = id;
        this.firm = firm;
        this.type = type;
    }
    public void passenger(String name){
        System.out.println("尊敬的"+name+"乘客,"+firm+"的车载您到了目的");
    }
    /**
     * 获取
     * @return id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置
     * @param id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取
     * @return firm
     */
    public String getFirm() {
        return firm;
    }

    /**
     * 设置
     * @param firm
     */
    public void setFirm(String firm) {
        this.firm = firm;
    }

    /**
     * 获取
     * @return type
     */
    public String getType() {
        return type;
    }

    /**
     * 设置
     * @param type
     */
    public void setType(String type) {
        this.type = type;
    }
    @Override
    public String toString() {
        return "Taxicab{id = " + id + ", firm = " + firm + ", type = " + type + "}";
    }
}


Taxi taxi = new Taxi();
taxi.setId("浙A XXXXXXX");
taxi.setFirm("123");
taxi.setType("轿车");
taxi.passenger("TongHui");

Taxi taxi1=new Taxi("浙A XXXXXXX","1234","面包车");
taxi1.passenger("TongHui1");
最后修改:2023 年 05 月 04 日
如果觉得我的文章对你有用,请随意赞赏