面向对象
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");