Java基础---对象

类--用来描述一组具有相同性质或者特征的复合数据类型

类中可以包含变量和方法

类中的变量或者方法是什么被使用的?

通过对象来调用类里面的变量和方法来使用

1.对象

1.对象是由自己定义的类来创建出来的

2.对象实际就是类的具体实现

  例如:修建大楼绘制的设计图纸就是类,根据设计图纸修建起来的真实的可以住人的大楼就是象。

  类--抽象【抽取象什么一样的东西】--模板【设计图】

  对象--实现--实例【真实的楼】

3.没有类就没有对象

4.一个类可以创建出多个对象

5.类是对象的模板,对象是类的真实表现

2.对象的作用?

   调用类中的变量和方法

3.如何创建对象?[new]

 1.当前类中--new+构造方法---this

 2.其他类中--new+构造方法

 格式  :  new  构造方法( [参数值] );

package com.object.test1;

public class Test {

	public static void main(String[] args) {
		/*
		//格式:new 构造方法([参数值])
		//创建Person类对象
		Person per1=new Person();
		Person per2=new Person("zhangsan");
		
	}

}

 4.对象访问变量

   1.局部变量在其他类中年不能访问。

   2.实例变量只能对象访问

   3.静态变量可以类名访问,也可以对象访问

   4.实例变量在听一个类的多个对象之间不能数据共享,而静态类可以。

 创建变量

package com.object.test1;
/**
 * 个人信息java类
 * @author air
 *
 */
public class Person {
	      
           //实例变量
           public String test1;
           //静态变量
           public static String dox1;
    }

 访问变量

package com.object.test1;

public class Test {

	public static void main(String[] args) {
		/*
		//格式:new 构造方法([参数值])
		//创建Person类对象
		Person per1=new Person();
		Person per2=new Person("zhangsan");
		//局部变量不能在其他类中访问
		//实例变量只能对象访问
		per1.test1="zhangsan";
		System.out.println("实例变量=="+per1.test1);
		String str1=per1.test1;
		System.out.println("实例变量str1=="+str1);
		//静态变量可以类名访问,也可以对象访问
		Person.dox1="lisi";
		per2.dox1="zhaoliu";
		System.out.println("静态变量=="+Person.dox1);
		System.out.println("静态变量per2=="+per2.dox1);
		String name=Person.dox1;
		String name2=per2.dox1;
		//实例变量在同一个类中的多个对象之间不能数据共享,静态变量在同一个类中的多个对象之间可以数据共享
		*/
		
		/*
		//实例变量在同一个类中发的多个对象之间不能共享数据
		Person per1=new Person();
		Person per2=new Person();
		per1.test1="zhangsan";
		per2.test1="lisi";
		System.out.println("per1.test1=="+per1.test1);
		System.out.println("per1.test1=="+per2.test1);
		per1.test1="zhangsansan";
		per2.test1="lisisi";
		System.out.println("per1.test1=="+per1.test1);
		System.out.println("per1.test1=="+per2.test1);
		*/
		
		//静态变量在同一个类中的多个对象之间可以数据共享
		Person per1=new Person();
		Person per2=new Person();
		per1.dox1="wahaha";
		per2.dox1="yibao";
		System.out.println("per1.dox=="+per1.dox1);
		System.out.println("per2.dox=="+per2.dox1);
		per1.dox1="zhangsan";
		per2.dox1="wawu";
		System.out.println("per1.dox=="+per1.dox1);
		System.out.println("per2.dox=="+per2.dox1);
	}

}

5.对象访问方法

   1.构造方法的访问---new

   2.实例方法只能对象访问

   3.静态方法可以类名访问,也可以对象访问

   4.有参数的方法需要传参数【个数 类型】【要什么,给什么】

   5.有返回值的方法,在方法体中的最后一句时return,返回的数据值与方法的返回值类型匹配,

    调用返回值的方法需要定义变量来接受方法的返回值【给什么,收什么】

例如:

创建方法

package com.object.test2;

public class TestClass {
	   //构造方法
	   public TestClass(){
		   System.out.println("无参数的构造方法");
	   }
		public TestClass(String name){
			System.out.println("有参数的构造方法name=="+name);
		}
		//实例方法
		public void shiliMthod1(){
			System.out.println("无参数的实例方法");
		}
		public void shiliMthod2(int id,String name){
			System.out.println("实例方法--参数id=="+id+";参数name="+name);
		}
		public String shiliMthod3(){
			System.out.println("有返回值的实例方法");
			return "zhangsan";
		}
		public String shiliMthod4(int id,String name){
			System.out.println("有参数,有返回值的实例方法");
			String stu="id="+id+",name="+name;
			return stu;
		}
		//静态方法
		//无参数的静态方法
		public static void staticMthod1(){
			System.out.println("无参数的静态方法");
		}
		//有参数的静态放法
		public static void staticMthod2(int id,String name){
			System.out.println("静态方法--参数id=="+id+";参数name="+name);
		}
		//有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配
		//有返回值的静态方法
		public static int staticMethod3(){
			System.out.println("有返回值的静态方法");
			return 100;
		}
		//有参数,有返回值的静态方法
		public static int staticMethod4(int id,int age){
			System.out.println("有返回值的静态方法");
			int num=id+age;
			return num;
		}
	}

 访问方法

package com.object.test2;

public class Main {
	public static void main(String[] args) {
		//构造方法的访问--new
		TestClass tc1=new TestClass();
		//实例方法只能对象访问
		tc1.shiliMthod1();
		//静态方法可以对象访问,也可以类名访问
		TestClass.staticMthod1();
		tc1.staticMthod1();
		
		//有参数的方法,需要传递参数【个数,类型】
		//1.传值
		//构造方法传值
		TestClass tc2=new TestClass("zhangsan");
		//实例方法传值
		tc2.shiliMthod2(1001, "zhangsan");
		//静态方法传值
		TestClass.staticMthod2(1002, "lisisi");
		
		//2.传变量
		//构造方法变量
		String name="zhangsan";
		TestClass tc3=new TestClass(name);
		//实例方法传变量
		int id1=1003;
		String name1="lisi";
		tc3.shiliMthod2(id1, name1);
		//静态方法传变量
		int id2=1004;
		String name2="zhaoliu";
		TestClass.staticMthod2(id2, name2);
		
		//调用有返回值的方法需要定义变量来接收方法的返回值
		TestClass tc4=new TestClass();
		//有返回值的实例方法
		String info1=tc4.shiliMthod3();
		System.out.println("shuiliMethod2方法的返回值"+info1);
		int intvalue=TestClass.staticMethod3();
		System.out.println("staticMethod3方法的返回值"+intvalue);
		
		//有参数,有返回值的静态方法
		TestClass tc5=new TestClass();
		String strinfo1=tc5.shiliMthod4(1001,"zhaolu");
		System.out.println("shuiliMethod2方法的结果"+strinfo1);
		int numint=TestClass.staticMethod4(1006,27);
		System.out.println("staticMethod3方法的结果"+numint);
		
	}

}

6.对象的内存分配原理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值