2021-7-15第八天

第八天

手机事物,通过面向对象的方式:定义手机类

品牌,价格,颜色,内存的属性
打电话,发短信,玩游戏,学习的行为.

class phone{
        String brand;
        int price;
        String color;
public void call(){
        System.out.println("打电话");
        }
public void text(){
        System.out.println("发短信");
        }
public void play(String g){
        System.out.println("玩"+g);
        }
public void Study(String s){
        System.out.println("学习"+s);
        }
}
public class phoneTest{
    public static void main(String[] args){
        phone p1 = new phone();
        p1.brand = "Apple";
        p1.price = 5999;
        p1.color = "Red";
        p1.call();
        p1.text();
        p1.play("LOL");
        p1.Study("java");
        System.out.println(p1.brand+p1.price+p1.color);
    }
}

创建一个对象的内存图解/两个对象内存

创建多个对象;将第一个对象名称赋值非第三个引用类型变量—内存图解(多个栈—指向同一个堆).

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

局部变量定义与方法中,或者是方法的声明上的形参如

class Student{
	public void Study(String s){
		String t = "Student";
		System.out.println(t+"Study "+ s);
		//这个方法声明上的s方法中的t就是局部变量.
	}
}

局部变量存放在栈内存中,随着方法的调用而存在,随着方法调用完毕而消失.在初始化局部变量时,可以先对其定义,但是在试用之前必须赋值,否则没有初始化变量的局部变量有可能会报错.

成员变量定义在类中的方法外,如

class Studnet{
	String name;
	int age;
	String gender;
	public void Study(){
		System.out.println("Study");
	}
	//以上的 name age gender 都是成员变量,它们都定义在方法外
}

成员变量在堆中储存,随着对象整体的创建而存在,对象创建完毕后也不像类中的局部变量一样使用完就立刻消失,而是在GC(垃圾回收器,这玩意你可以去BDBD?)空闲以后自动回收掉.

成员变量可以不初始化,系统默认对它进行初始化,根据类型不同,初始化的也不同.

如果形式参数是引用类型,具体的类实际参数如何传递?

如果方法的形参类型是一个引用类型的类,呢么就需要创建当前引用类型类的对象才能传递进去参数.

class Programmer{
	public void coding(){
		System.out.println("程序员根据需求写代码...") ;
	}
}
//定义Demo类
class Demo{
	//有一个成员方法
	public void show(Programmer programmer){
		programmer.coding() ;
	}
}
class Test{//测试类
	public static void main(String[] args){
		//创建Demo类对象
		Demo d = new Demo() ;
		//创建Programmer类的对象
		Programmer pro = new Programmer() ;
		d.show(pro) ;
	}
}

什么是匿名对象,有什么特点

匿名对象就是新创建对象时候不给新创建对象名字,格式为:

new 类名();

匿名对象可以作为参数进行传递,一般在开发过程中仅需使用一次对象的时候使用,因为没有栈内存变量指向堆内存地址,直接是在堆内存中开辟空间,使用完毕后就立刻进行回收.一般搞Android的开发用的多,因为手机的内存小,这样做可以节省空间.

引入关键字 private

private关键字既可以修饰成员变量也可以修饰成员方法,但是都只能在本类中进行访问,外界不能直接访问private的属性或者方法,通过这种方式来完成封装,属性方法的私有化,这些私有化的属性方法,只能通过公共的方法来访问或者修改.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值