文章目录

  • 类与对象概述
  • 对象
  • 对象的创建
  • 对象属性与行为的访问
  • 成员变量
  • 成员方法
  • 权限修饰符
  • 局部变量
  • 局部变量的有效范围
  • this关键字
  • 类的构造方法
  • 静态变量与静态方法
  • 结尾


类与对象概述



在Java语言中,类与对象是非常重要的组成部分,类可以看做是对象的载体,它定义了对象所具有的功能,对象依附于类而存在。



对象

对象是对事物的实例化,例如 人、鸟、电脑、手机等。这些都可以是看作是一个对象。
通常对象会被分为两部分,静态部分与动态部分。
静态部分就是一个事物必然拥有的部分,这个部分被称为属性,任何对象就会有属性。
而动态部分就是一个事物特有的部分,这个部分被称为行为,行为可以是对象独有的,也可以是都有的。

例如:

//学生类
public class Student{
	//这些就是属性,是每一个学生都有的部分
	String name;	//姓名
	int age;		//年龄
	char gender;	//性别
	
	//这个就是行为,每个学生的特长不一定都相同
	public void specialty(String swil){
	}
}




如果将大雁看作是一个对象的话,那么大雁会具有那些属性与方法呢?

图示

一个java对象的对象的生命周期 java简述对象的组成部分_一个java对象的对象的生命周期




对象的创建

在Java中使用new操作符,调用构造方法创建对象。
如果有多个构造方法,new 操作符会根据构造方法传入的形参来自动调用相应的构造方法。
类名 对象名 = new 构造方法(无参/有参);
Book bk=new Book();	//创建一个对象,使用空参构造
Book bk_2=new Book("Java程序设计");	//创建一个对象,使用有参构造




对象属性与行为的访问

上述已说明对象拥有属性与行为,那么对象的属性与行为该怎么访问呢?

在使用 new 操作符创建一个对象后,可以使用 对象.成员 的方法来使用对象的属性与行为。

例如

public class Main{
	public static void main(String[] args){
		Student s1=new Student();	//使用空参构造创建一个方法
		//给创建的对象属性赋值
		s1.name="小明";
		s1.age=18;
		s1.gender='男';
		//使用对象的属性
		System.out.println(s1.name);
	}
}

//学生类
class Student{
	//这些就是属性,是每一个学生都有的部分
	String name;	//姓名
	int age;		//年龄
	char gender;	//性别
	
	//这个就是行为,每个学生的特长不一定都相同
	public void specialty(String swil){
	}
}




前面已经简略介绍过对象的概念了,对象是类的实例化,而类是对象的载体。
那么以下我们来总结一下,一个类中的组成。



成员变量

在Java中,对象的属性就是成员变量的方式存在的。
public class Book{
	//成员变量
	private String name;	//书的属性
	
	//行为
	public void setName(String Name){
		//为属性赋值
		this.name=Name;
	}
	public String getName(){
		//获取属性值
		return this.name;
	}
}

其实成员变量就是普通的变量,只不过用来表示了类的属性。在创建成员变量时,可以为成员变量设定初始值,如果设定初值的话,会有默认值。如果在创建成员变量时,给定了默认值,那么在本类创建的所有对象,在没有修改这个成员变量的值前,所有对象的成员变量都是这个给定值。



成员方法

在Java中使用成员方法来对应类对象的行为。以上述的Book类为例。
它包含了两个成员方法,一个是设置图书的名称,一个是获取图书的名称。

定义成员方法的格式

权限修饰符 返回值类型 方法名(参数类型 参数名){
	//方法体
	return 返回值;
}
成员方法的定义,其实与方法的定义没区别,只不过成员方法是对应着类对象的行为。




权限修饰符

权限修饰符用于控制外界对类或类中的事物的访问。

Java提供了三种权限修饰符,分别是:public、private、protected。这三种权限修饰符控制着外界对被修饰事物的访问。

一个java对象的对象的生命周期 java简述对象的组成部分_开发语言_02

该图片来自网络,侵删。

特别说明,如果类或方法或成员变量前没有加任何权限修饰符,那么就是默认权限default。



局部变量

定义在方法内部的变量称为局部变量。局部变量的定义和使用,与普通的变量一致。
public class Array{

	//交换数组中两个下标的值
	public void swap(int[] arr,int left,int right){
		//此时 temp 就是一个局部变量
		int temp=arr[left];
		arr[left]=arr[right];
		arr[right]=temp;
	} 
}

局部变量在方法被执行时创建,在方法结束时销毁。局部变量在使用前必须进行赋值或者初始化。




局部变量的有效范围

如果把一对{}大括号看作一个方法的话,那么局部变量的作用域在定义后,直至{}大括号结束。

图示

一个java对象的对象的生命周期 java简述对象的组成部分_构造方法_03




this关键字

this关键字只能在本类中使用。

this关键字表示对象当前调用者的地址。

public class Main {
    public static void main(String[] args) {
    	//创建一个Array类的对象,对象名为a1
        Array a1=new Array();
        a1.show();
        System.out.println(a1);	//输出对象地址值
    }
}
// 定义一个Arra类
class Array{
    public void show(){
        //输出 调用者对象的地址
        System.out.println(this);
    }
}



结果如下

一个java对象的对象的生命周期 java简述对象的组成部分_构造方法_04




例如:以下代码得运行结果是什么呢?

public class Main {
    public static void main(String[] args) {
        Array a1=new Array();

        a1.showNum();
    }
}
class Array{
    private int num=100;
    
    public void showNum(){
        int num=-100;
        System.out.println("第一个数:"+num);	
        System.out.println("第二个数:"+this.num);
    }
}

因为this关键字代表着对象当前调用者的地址,所以this.num 等价于 Array.num。



输出结果

一个java对象的对象的生命周期 java简述对象的组成部分_构造方法_05




类的构造方法

在类中,除了成员方法之外,还有一类特殊的方法,就是构造方法。构造方法是一种于类同名的方法。
在一个类创建对象时,虚拟机会根据形参,自动调用构造方法,来初始化对象。

构造方法没有返回值,且构造方法的名称要与本类同名。同时满足这两点才是一个构造方法。



无参构造与有参构造

这里的有参与无参,指的是有无形参。
public class Book{
	private String name;

	//无参构造
	public Book(){
	}
	//有参构造
	public Book(String Name){
		this.name=Name;
	}
}

特别注意:无参构造不需要我们自行编写,虚拟机会自动加上,但是如果我们编写了有参构造的话,那么此时虚拟机不会自行添加无参构造,需要我们自行编写。




静态变量与静态方法

使用static关键字修饰的方法或者变量称为静态的。
被static修饰的变量与方法,地址被放置于静态区内,在类文件执行时,会自动调用这块区域,且只会执行一次。

静态方法与变量可以直接使用 类名.静态成员 的方式调用。

静态关键字使用注意点

  1. 在静态方法中不可能使用this关键字
  2. 静态方法只能调用静态方法,非静态方法调用所有
  3. 局部变量不可以使用static关键字声明
  4. 主方法必须使用static声明
  5. 所有类,只有内部类可以使用static关键字声明


结尾

上述就是有关Java类与对象章节的总结了,写的可能不是很好,如有表达错误的地方,望各位指出。