类与对象
-
类:具有相同属性和行为的事物统称
- 电脑类
- 属性:品牌、价格、颜色
- 行为:看电影、玩游戏
- 电脑类
-
对象:某一个类事物中的一个具体实例
-
联想品牌电脑对象
- 价格为7777元
- 可以看电影
类的定义和对象的使用
- 电脑类
public class Computer{
//成员变量–属性
//属性:品牌、价格、颜色
String brand;
int price;
String color;
//成员方法–行为
public void coding(){
System.out.println(“使用电脑敲代码”);
}
public void study(){
System.out.println(“使用电脑学习”);
}
}
-
创建电脑对象
类名 对象名=new 类名();
public class Demo1{
public static void main(String[] args){
//创建Computer类的对象
Computer com=new Computer();//对象名.属性名
System.out.println(com.brand); //null
System.out.println(com.color); //null
System.out.println(com.price); //0//给属性赋值
com.brand=“联想”;
com.price=8766;
com.color=“黑色”;System.out.println(com.brand); //“联想”
System.out.println(com.color); //“黑色”
System.out.println(com.price); //8766System.out.println("--------------");
//对象名.方法名();
com.coding();
com.study();
}
}
对象内存图
成员变量和局部变量
1.类中的位置不同
成员变量:类中方法外
局部变量:方法中{}或()
2.作用域不同
成员变量:整个类中都能访问
局部变量:只在所定义的方法中有效
3.初始值不同
成员变量:默认初始值(没有赋值可以使用)
局部变量:没有默认值(没有赋值不能使用)
4.内存位置不同
成员变量:跟随对象在堆内存中
局部变量:在栈内存中
5.生命周期不同
成员变量:随着对象的创建而创建,随着对象被垃圾回收器回收而消失
局部变量:随着方法的调用而创建,随着方法调用结束而消失
封装性
所谓封装就是把不想让别人知道的部分隐藏起来,把想让别人知道部分暴露出去
-
一般把成员变量用private关键字修饰
被private修饰的成员变量,只能在本类中访问 -
提供getXxx和setXxx方法
getXxx:获取成员变量的值
setXxx:设置成员变量的值
this关键字
this表示本类对象的引用:哪个对象调用方法,方法内部的this就表示哪个对象
this.成员变量 调用本类的成员变量
this.成员方法() 调用本类中的成员方法[几乎不会出现]
构造方法
- 构造方法是用来创建对象的
- 每次创建对象的时候都会执行
- 如果不写构造方法,编译器自动赠送一个空参构造方法。
- 建议不管增不赠送构造方法,都自己写一个空参构造方法
- 多个构造方法是重载关系
一个标准类的写法
public class Phone{
//手机的属性:品牌、 价格 、颜色
//private修饰的变量不能被其他调用
private String brand;
private String color;
private int price;
//构造方法 -空参(仅用来创建对象)
public phone(){
}
//构造方法-有参构造方法(创建对象,同时给成员变量赋值)
public phone(String brand,String color,int price){
this.brand=brand;
this.color=color;
this.price=price;
}
//get和set方法
public String getBrand(){
return brand;
}
private void setBrand(String brand){
this.brand=brand;
}
…
//自爆属性值
public void show(){
System.out.println(brand+","+price+","+color)
}
}
测试类
public class Demo12{
public static void main(String[] args){
//创建Phone类的对象,同时给属性赋值
Phone p=new Phone(“IphoneXs”,“土豪金”,“9999”)
p.show();
///获取属性值
String brand =p.getBrand();
String color=p.getColor();
int price=p.getPrice()/
}
}