4.Java对象和类

Java对象与类详解
本文主要探讨Java中的对象和类,包括对象作为类实例的概念,类的定义与局部、成员、类变量的区别,以及构造方法的作用。此外,还介绍了如何创建和初始化对象,以及源文件的声明规则和Java包的使用。最后提到了import语句在访问类中的重要性。

Java对象和类

java作为一种面向对象的语言,有如下的基本概念:
多态
继承
封装
抽象

对象
实例
方法
重载
本节我们重点研究对象和类的概念。

对象:对象是类的实例,有具体的状态和行为。
:类是一个模板,描述一类对象的状态和行为。
在这里插入图片描述

Java中的类

下面给出一个类的定义


public class Dog {
	String breed;
	int age;
	String color;
	void braking() {
		
	}
	void eat() {
		
	}
	void drink() {
		
	}
}

局部变量:方法中的变量为局部变量,随着方法的结束而析构(销毁),与方法的生命周期相同。
成员变量:类中的成员变量,相当于类中各个方法的全局变量,与对象的生命周期相同。
类变量:必须有static修饰,与类的生命周期相同,所有对象共用该变量。

构造方法
构造方法也是类中的一个方法,作用是给类中的变量赋初值和进行一些初始化的操作,类的每一个对象实例化的同时都会调用对应的构造函数,一个类可以有多个不同的构造函数,以便类在实例化的时候可以传多种参数,如果不写构造函数,默认会分配一个无参构造函数,但一旦写了构造函数,则不再分配默认构造函数。
下面是一个构造方法的例子:

public class Dog{
	Dog(){
		//无参构造函数
	}
	Dog(String name){
		//有一个参数的构造函数
		this.name=name;
	}
	String name;
	int age;
}

创建对象

对象是以类为模板创建的,创建一个需要用到关键字new ,创建一个对象要三步:
1.声明:声明一个对象,包括对象的名称(对象的引用)和对象类型

Dog dog1=

2.实例化:使用new关键字类创建一个对象。

=new Dog("maomao");

3.初始化:在使用new创建一个对象的同时会调用对应的构造函数
一个例子:

public class Dog{
	String name;
	int age;
	Dog(String name){
		this.name=name;
		System.out.println("狗的名字是:"+this.name);
	}
	public static void main(String [] args) {
		Dog dog1=new Dog("孙悟空");
		
	}
}

运行结果为:
在这里插入图片描述

这里要注意dog1只是对象的名字(实际上是一个地址,指向实际堆中的一块空间,那块空间才是真正的对象)

下面展示如何访问实例变量和方法

public class Dog{
	String name;
	int age;
	Dog(String name){
		this.name=name;
		System.out.println("狗叫:"+this.name);
	}
	void setAge(int age) {
		this.age=age;
	}
	int getAge() {
		return this.age;
	}
	public static void main(String[] args) {
		Dog myDog=new Dog("狗悟空");
		myDog.setAge(111);
		System.out.println(myDog.age );
	}
}

在这里插入图片描述

源文件声明规则

最后,我们学习源文件声明规则。
当一个源文件(.java)文件中有多个类,import语句和package语句时,必须
1.一个源文件中只能有一个public类,可以有多个非public类
2.源文件的名字必须和public类名称相同。例如如果public类名为Dog,源文件名必须为Dog.java
3.如果源文件在某个包中,必须在该源文件的首行写package语句
4.如果有import语句,那么import语句必须在package语句和public类定义之间
类有若干中访问级别,也有不同的类型,例如抽象类和final类,还有一些特殊的类,如匿名类和内部类,这些将在以后的学习中学习。

Java包

java包主要用来给程序中不同的类和接口分类,在开发Java程序的时候,有可能有成千上万的类和接口,因此用包来给类和接口分类十分必要。

import语句
import语句用来给编译器一个路径,是编译器更快的找到所需要的类

下面是一个例子:

package package1;
import package2.Dog1;
public class DogTest {
	public static void main(String[] args) {
		Dog1 myDog=new Dog1("豆豆",4);
	}
}

package package2;

public class Dog1 {
	String name;
	int age;
	public Dog1(String name,int age){
		this.name=name;
		this.age=age;
		System.out.println("名字:"+this.name);
		System.out.println("年龄:"+this.age);
		
	}
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值