JAVA 类和对象

类和对象

概念

对象:世界万物皆对象

 每个对象都会从两个角度描述:

静态

属性:对象所拥有的各种特征.

每个对象的属性所拥有的值.

动态(行为)

方法:对象执行的操作

封装:将属性及方法相结合,共同体现对象的特性.

 对象的属性和方法通常被封装在一起

类:具有相同属性和共同行为的一组对象的集合.

对象中抽取属性和行为的共同特征,从而抽象出类

类是一个高度抽象的概念

类是对象的抽象,对象是类的实例

类的定义

举例

public class Cubic
{
	//底面长。宽
	int a;
	int b;
	//高
	int c;
	
	//下面是方法
	
	  //求底面周长
	public int length()
	{
		return 2*(a+b);
	}
	//求底面面积
	public int area()
	{
		return a*b;
	}
	//求长方形表面积
	public int totalArea()
	{
		int d=2*(a*b+a*c+b*c);
		return d;
	}
	//求长方体体积
	public int volumn()
	{
		int d=a*b*c;
		return d;
	}
}

   方法中可以嵌套其他方法

例如上面的表面积和体积,可以改成

//求长方形表面积
	public int totalArea()
	{
		//int d=2*(a*b+a*c+b*c);
	    int d=2*area()+length()*c;
		return d;
	}
	//求长方体体积
	public int volumn()
	{
		//int d=a*b*c;
		int area()*c;
		return d;
	}

用类创建对象

public class Main {
	public static void main(String[] args) {
	//创建对象
	Cubic cubic =new Cubic();
	//使用
   cubic.a=10;
	System.out.println(cubic.a);
	
	System.out.println(cubic.b);
		
	cubic.b=20;
	cubic.c=30;
	System.out.println(cubic.length());
	}
	}
}

创建过程:
1.系统加载类的字节码
2.new操作:

  • 根据字节码,在堆内存中为该类的成员变量中的实例变量分配内存,并赋默认值;
  • 第一次创建类的实例时,分配实例方法的入口地址。
    3.将对象的引用传递给变量

优点

1.面向对象程序设计可以模拟现实世界
2.类的封装性,其余人可以直接使用,不用关心具体实现
3.提高代码的重用性

类的成员变量

与局部变量区别

  • 作用域和初始值不同.
    • 成员变量:是类的属性,在类内都有效。(在类内位置随意,即使在语句下方定义也可以)
    • 局部变量:方法行参,复合语句内部,循环语句内部,判断语句内有效
    • 成员变量:初始值为0,局部变量:没有初始值

成员变量的引用问题

如果成员变量与局部变量重名(例为a)
局部变量的优先级高,
直接使用 a 默认是使用局部变量
如果想使用成员变量,使用this.a

类变量(静态变量)

类变量由类所拥有

JAVA 类和对象

上一篇:C#扩展方法


下一篇:(转)C#中匿名函数、委托delegate和Action、Func、Expression、还有Lambda的关系和区别