欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

对象的定义与使用

程序员文章站 2022-04-02 10:40:51
...

对象的定义及使用

  • 有了类,想要使用类,需要通过对象来调用,如果要产生对象,必须要实例化出一个对象,在对象中调用类(即调用对象的属性、方法)

产生对象必须使用如下语法格式来完成:

  1. 获取实例化对象两种方法:
  • 声明并实例化对象类名称 对象名称 = new 类名称();
  • 分步骤完成:
    (1)声明对象类名称 对象名称 = null;(建议给初始值)
    (2)实例化对象对象名称 = new 类名称();
  1. 当获取了实例化对象之后,需要通过对象进行类中的操作调用,两种调用方式:
  • 调用类中的属性:实例化对象.成员属性;
  • 调用类中的方法:实例化对象.方法名称();
    Com1.setBrand(“Hasee”,7499.00); //调用Com1对象的setBrand方法
  • 如果对象属性内容并未设置初始值,则默认对象的属性、方法的内容的默认值。

两块最为常用的内存空间:

1.堆内存:保存的对象的具体信息,在程序之中,堆内存空间开辟是通过关键字“new”完成的。

  1. 开辟空间内存的*别
  2. 堆内存都有其对应的物理地址

2.栈内存:保存的是一块堆内存的地址,即:通过栈内存地址找到堆内存地址,然后得到对象的信息。

  • 声明并实例化对象:只能保存一个堆内存的地址数据,如果发生更改,则之前的地址数据将从此栈内存中彻底消失。
  • 注意:所有的对象在调用类中的属性和方法的时候必须要实例化完成
package Hello;
public class Hello{
	public static void main(String[] args) {
		//
		PC Com1 = new PC();											//声明并实例化Com1对象
		/*
		* PC:实例化的对象属于类   
		* Com1:实例化的对象名称,实际上是一个物理地址(栈内存)
		* new:为Com1这个对象开辟一个属性存储空间(堆内存空间)
		* PC():定义堆内存的内容的空构造方法,有才是完整格式。开辟了一个该类的对象Com1并将com1中的属性、方法都设置为默认值。
		*/
		Com1.setBrand("Hasee",7499.00);								//调用Com1对象的setBrand方法
		System.out.println("品牌:" + Com1.getBrand() + "\n价格:" + Com1.getPrice());
	}
}
class PC{															//创建电脑PC类
	private String Brand;											//定义这个类的一个属性
	private Double Price;											//两个属性都以private方式封装
	public void setBrand(String Brand,Double Price){					//set方法设置private封装的属性的内容
		this.Brand = Brand;
		this.Price = Price;
	}
	public String getBrand() {
		return this.Brand;
	}
	public Double getPrice() {										//两个get方法是获取private封装的属性的内容
		return this.Price;
	}
}

对象的定义与使用

内存的引用传递:

  • 本质:同一块堆内存空间可以被不同的栈内存指向,也可以更换指向。
		System.out.println("栈内存指向没有改变时");
		Com1.Human = "李四";
		Com2.Human = "张三";
		System.out.println("一号购买者:" + Com1.Human + "\n二号购买者:" + Com2.Human);
		System.out.println("栈内存指向改变时");
		Com1.Human = Com2.Human;								//将一号购买者名字记录指向二号购买者
		System.out.println("一号购买者:" + Com1.Human + "\n二号购买者:" + Com2.Human);
		System.out.println("品牌:" + Com1.getBrand() + "\n价格:" + Com1.getPrice());

对象的定义与使用

引用与垃圾产生分析:

  • 垃圾:没有任何栈内存指向的堆内存叫垃圾,就是没有地址了(或是说指向他的地址改变了),只有内容还存在。这就叫~。垃圾将被GC(Garbage Collector,垃圾收集器),不定期进行回收,并且释放无用内存空间,但是如果垃圾过多,一定将影响到GC的处理性能,从而降低整体的程序性能,所以在实际开发中,尽量少产生垃圾,越少越好。

补充上次笔记

面向对象与面向过程区别:

  • 拿篮球场的例子来说,面向过程是步骤化
    篮球场上,告诉某一个队员,什么时候,站在什么位置,要拿着球或是抢断球,同时运球(需要描述怎样运球),然后怎样跑去跑过去,怎样去投篮等。但现实肯定不会这样

    	/*简单想象篮球场为一个4*4的二维数组
       *int p = 1;			//假设队员为1
       *球员从[0][0]的位置到[3][3]的位置为投篮成功
       *这是一场加塞==假赛,位置都固定了
       *a[3][3]
       *1  0  3  0					//0       2为过防   3为传球    
       *0  3  2  0					//1
       *0  2  3  0					//2
       *2  2  0  0					//3
       *当球员从00位置依次向01  02  03  10  ...  33位置,因为知道对应位置会发生什么事,
       *按照设置好的程序做就好
       */
    
    
  • 面向对象,模块化
    将球员在球场上碰到了何种情况,做出什么应对。
    将各种会碰到的情况抽象出来,比如:队员,设置传球这一方法,当在不确定的球场中遇到了3情况就可以使用传球这一方法

封装

  • private 对类的外部不可见,对内部可见
    设置或取得属性:setter、getter ——> setXxx()、getXxx()
    1. 设置(修改 )属性的方法:public void setName() ;
    2. 获取属性的方法:public String getName() ;
      类中所有属性都得用private封装(绝大部分),并且属性如果要进行访问,必须提供getXxx\setXxx方法。
相关标签: java