java基础,没事常看看(一)类、对象、引用

  1. 什么是对象,什么是类?
    类:是一个抽象的概念,表示的是一类事物所拥有的共性(属性、方法)。
    对象:是类的具体(实例),对象不仅拥有类的属性和方法(private除外),还有自己专属的属性与方法。

比如:人是一个类,
那么对象就可以有男人,女人,学生,老板等等。
这里类是女朋友

package javaBasis1;

//听说你缺女票,new一个吧
public class girlfriend{
	//这三个是成员变量
	int age;//年龄属性     
	int height; //身高属性
	int weight;//体重属性
	
	public girlfriend(String name) {
		name="翠花";
		System.out.println("名字什么的才不可能是"+name+"呢");
	}
	
	//女生的化妆行为
	public void make_up() {
		//这个是局部变量
		int time;//化妆时间???
		System.out.println("没人能碰我的妆,哪怕是我自己!");
	}
	
	public void showgirlfriend(int age,int height,int weight) {
		System.out.println("My girlfriend:");
		System.out.println("年龄:"+age);
		System.out.println("身高:"+height);
		System.out.println("体重:"+weight);
	}
	
	public static void main(String[] args) {
		girlfriend one=new girlfriend(null);//‘=’的左边叫做声明对象,右边叫做实例化对象
										//当对象被实例化后,会调用构造函数初始化对象。(null)表示调用自定义的那个构造函数。
		one.age=18;
		one.height=166;
		one.weight=99;
		
		one.showgirlfriend(one.age, one.height, one.weight);
	}
}

执行结果:

名字什么的才不可能是翠花呢
My girlfriend:
年龄:18
身高:166
体重:99

一个类可以包含成员变量、类变量和局部变量:
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

每个类都有构造方法,如果你自己没有写构造方法的话,java编译器会为该类提供一个默认的构造方法。构造方法与类同名,自己写的可以包含参数,默认的构造方法是无参的。

  1. 什么是对象的引用?
    以1中的程序为列

    girlfriend one=new girlfriend(null);这里面new girlfriend表示以girlfriend为模板,在堆空间中创建一个girlfriend类。
    girlfriend one表示声明一个girlfriend类型的引用对象one,这里的‘=’的意思就是使对象引用one指向创建(new的)的对象girlfriend。

对对象和引用的总结:

  • 一个对象引用可以指向0个或者1个对象
    girlfriend one=new girlfriend(null);(指向一个对象)
    girlfriend two;(指向0个对象)
  • 一个对象可以被多个对象引用指向
    girlfriend one=new girlfriend(null);
    girlfriend two=one;
    girlfriend three=one;
  • Java对象和引用的关系可以说是互相关联,却又彼此独立。彼此独立主要表现在:引用是可以改变的,它可以指向别的对象。
  • 从存储空间上来说,对象和引用也是独立的,它们存储在不同的地方,对象一般存储在堆中,而引用存储在速度更快的堆栈中。
  • 参数传递。Java只有一种参数传递方式:那就是按值传递,即Java中传递任何东西都是传值。如果传入方法的是基本类型的东西,你就得到此基本类型的一份拷贝。如果是传递引用,就得到引用的拷贝。
    例如:
package javaBasis1;

public class 引用demo {
	//传递引用
	public void demo1(StringBuffer s) {
		s.append(" world");
	}
	
	public void demo2(StringBuffer s) {
		s=new StringBuffer(" agin");
	}
	
	//传递基本类型
	public void demo3(int num) {
		num=100;
	}
	
	
	public static void main(String[] args) {
		引用demo demo=new 引用demo();
		StringBuffer s=new StringBuffer("hello");
		demo.demo1(s);
		System.out.println(s);
		
		demo.demo2(s);
		System.out.println(s);
		
		//基本类型demo
		int num=1;
		demo.demo3(num);
		System.out.println(num);
	}

}

运行结果:

hello world
hello world
1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值