【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3)

这篇具有很好参考价值的文章主要介绍了【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

🌈个人主页: Aileen_0v0
🔥系列专栏:Java学习系列专栏
💫个人格言:"没有罗马,那就自己创造罗马~"


回顾

上次,我们学习了关于Java面向对象编程的构造方法,以及关键字this在构造方法/实例化对象中的使用,若有遗忘点击👉🔗

本节我们`来学习,代码块,tostring以及继承 

那还等什么,直接进入主题吧~


如何调用构造方法:

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

 通过构造对象进行构造方法的调用,对应自己想调用的构造方法,看构造方法的参数个数进行传参.

上面main函数利用创建的对象person1调用的是无参构造方法


代码块 

代码块分类

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

package lecture1;


class Person{
	private String name;
	private int age;
	private static int count;
	
	//构造方法 - 总是和类名相同,且无返回值
	//当没有构造方法的时候,编译器会自动提供一个,不带参数的构造方法
	//构造方法作用:实例化一个对象
	//构造方法1:
	public Person() {
		//this("🐖🐖",1);
		System.out.println("Person<init>");
		//this("林🐖🐖");

	}

	
	//构造方法2:
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
		System.out.println("Person<String,int>");
	}
	

	
	{
//		this.name = "zhangfei";
//		count = 99;
		System.out.println("实例代码块......作用:访问普通成员变量");
	}
	
	static{
//		this.name = "zhangfei";//牢记:静态不能访问非静态的数据成员
//		count = 99;
		System.out.println("静态代码块......");
	}

	
	public static void func() {
		count = 99;
//		this.name = "caocao";
	}
	
	//构造方法3:
	public Person(String name) {
		
	}
	
	public void eat() {
		System.out.println(this.getName());
		System.out.println(this.age);
		
	}

	
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	//@Override
	public String toString() {
		return "Person{" +
				"name='" + name + '\'' +
				",age="  + age +
				"}";
	}
}
public class TestDemo {
	public static void main(String[] args) {
		Person person1 = new Person();
		System.out.println("======================");
		Person person2 = new Person();
		
	}

运行结果

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

根上面代码的运行结果我们可以得到以下结论: 

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

代码块打印顺序:【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

静态的方法 和 静态的 成员 不依赖对象.---我们可以通过类名进行访问.

如果静态方法里面访问 实例成员变量, 那么 这个实例成员变量是依赖对象的,但静态方法不依赖. 

重要的事情说三遍:

静态里面不能有非静态数据成员!!!

静态里面不能有非静态数据成员!!!

静态里面不能有非静态数据成员!!!

package lecture1;

class Person{
	private String name;
	private int age;
	public static int count;
	
	static{
//		this.name = "zhangfei";//牢记:静态不能访问非静态的数据成员
		count = 99;
		System.out.println("静态代码块......");
	}
	
	//构造方法 - 总是和类名相同,且无返回值
	//当没有构造方法的时候,编译器会自动提供一个,不带参数的构造方法
	//构造方法作用:实例化一个对象
	//构造方法1:
	public Person() {
		//this("🐖🐖",1);
		System.out.println("Person<init>");
		//this("林🐖🐖");

	}

	
	//构造方法2:
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
		System.out.println("Person<String,int>");
	}
	

	
	{

		System.out.println("实例代码块......");
	}
	


	
	public static void func() {
		count = 99;
//		this.name = "caocao";
	}
	
	//构造方法3:
	public Person(String name) {
		
	}
	
	public void eat() {
		System.out.println(this.getName());
		System.out.println(this.age);
		
	}

	
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	//@Override
	public String toString() {
		return "Person{" +
				"name='" + name + '\'' +
				",age="  + age +
				"}";
	}
}
public class TestDemo {
	public static void main(String[] args) {
		System.out.println(Person.count);
		
	}

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端 

对比上面运行结果,左边打印出的count值为99,右边为0,我们可以得出:

如果代码块都是静态的, 那么打印结果 和定义的前后顺序有关


匿名对象

匿名对象就是没有名字的对象,每次使用只能使用一次

没有引用的对象称为匿名对象
匿名对象只能在创建对象时使用
如果
一个对象只是用一次,后面不需要用了,可以考虑使用匿名对象

package lecture1;


class Person{
	private String name;
	private int age;
	
	static{
//		this.name = "zhangfei";//牢记:静态不能访问非静态的数据成员
		count = 99;
		System.out.println("静态代码块......");
	}
	public static int count = 0;
	
	//构造方法 - 总是和类名相同,且无返回值
	//当没有构造方法的时候,编译器会自动提供一个,不带参数的构造方法
	//构造方法作用:实例化一个对象
	//构造方法1:
	public Person() {
		System.out.println("Person<init>");

	}

	
	//构造方法2:
	public Person(String name, int age) {
		System.out.println("Person<String,int>");
	}
	
	//实例代码块
	{

		System.out.println("实例代码块......");
	}
	


	
	public static void func() {
		count = 99;
//		this.name = "caocao";
	}
	
	//构造方法3:
	public Person(String name) {
		
	}
	
	public void eat() {
		System.out.println(this.getName());
		System.out.println(this.age);
		
	}

	
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	

}


public class TestDemo {
	
	public static void main(String[] args) {
        //有名对象↓
		Person person1 = new Person();
		person1.eat();
		person1.eat();
		System.out.println(person1.getName());
		
        //匿名对象↓
		new Person().eat();
		new Person().getName();
	}

【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3),JAVA,java,eclipse,后端

📝总结:

一个类可以产生无数的对象,类就是模板,对象就是具体的实例。

类中定义的属性,大概分为几类: 类属性,对象属性。

其中被static所修饰的数据属性称为类属性,static修饰的方法称为类方法,特点是不依赖于对象,我们只需要通过类名就可以调用其属性或者方法

静态代码块优先实例代码块执行,实例代码块优先构造函数执行。

this关键字代表的是当前对象的引用。并不是当前对象。 文章来源地址https://www.toymoban.com/news/detail-756137.html

到了这里,关于【JAVA杂货铺】一文带你走进面向对象编程|构造方法调用 | 代码块分类| 期末复习系列 | (中3)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C++杂货铺】再谈类和对象

    在创建对象的时候,编译器通过调用构造函数,在构造函数体中,给对象中的各个成员变量一个合适的初值。 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化, 构造函数体中的语句只能将其称为赋初值,而不能称作初

    2024年02月16日
    浏览(40)
  • 【C++杂货铺】初识类和对象

    📖 面向过程 C语言是 面向过程的 ,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。以洗衣服这件事为例,下图是C语言完成洗衣服这件事的过程。 📖 面向对象 C++是 基于面向对象的 ,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完

    2024年02月16日
    浏览(52)
  • 【算法杂货铺】二分算法

    目录 🌈前言🌈 📁 朴素二分查找  📂 朴素二分模板 📁 查找区间端点处 细节(重要)  📂 区间左端点处模板  📂 区间右端点处模板 📁 习题 1. 35. 搜索插入位置 - 力扣(LeetCode) 2. 69. x 的平方根 - 力扣(LeetCode) 3.153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode)

    2024年04月13日
    浏览(45)
  • 【C++杂货铺】模板

    📖 实现一个通用的交换函数 想要实现一个通用的交换函数不难,借助函数重载就可以。函数重载小伙伴们还记得嘛👀,忘了的小伙伴可以走传送门回去复习一下。如上面代码所示,我们借助函数重载实现了三份 Swap 函数,分别用来交换两个整型变量、两个双精度浮点型变量

    2024年02月09日
    浏览(50)
  • 【C++杂货铺】引用

    前言:  相信大家在学习C语言的时候,最头疼的就是指针,经常会碰到一级指针、二级指针,这些指针使用起来,稍有不慎就会等导致程序崩溃,为了让广大程序员少掉点头发,C++中提出了 引用 这一概念。当然,在C++的代码中,仍然可以兼容C语言的指针。  在语法上 引用

    2024年02月16日
    浏览(48)
  • 【Linux杂货铺】文件系统

    目录 🌈前言🌈 📁 硬盘  📂 物理结构  📂 存储结构  📂 CHS定址法  📂 操作系统对硬盘的管理和抽象 📁 文件系统  📂 分区  📂 分组  📂 inode号  分配  📂 逆向路径解析 分区挂载 目录作用 📁 总结         欢迎收看本期【Linux杂货铺】内容,本期主要讲解文件系

    2024年04月14日
    浏览(47)
  • 【C++杂货铺】内存管理

    从用途和存储的角度来看,在C/C++程序中有 局部数据、静态数据、全局数据、常量数据、动态申请的数据 五种主要的数据,各种数据的特点如下: 局部数据 :随用随创建,存储在栈区,作用域只在局部,生命周期在局部,出了作用域就销毁。 静态数据 :存储在数据段,作

    2024年02月16日
    浏览(41)
  • 【Linux杂货铺】操作系统

    目录 🌈前言🌈 📁 冯诺依曼体系结构 📂 拓展问题:程序为什么要被加载到内存? 📂 主机与主机的交互 📁 操作系统的概念  📂 作用  📂 理解“管理”  📂 系统调用 和 库函数的概念 📁 总结         欢迎收看本期【Linux杂货铺】,本期内容将讲解计算机中操作系统

    2024年03月13日
    浏览(49)
  • 【C++杂货铺】内管管理

    目录 🌈前言🌈 📁 C/C++中内存分布 📁 new 和 delete的使用 📁 new 和 delete的优点 📁 new 和 delete的原理  📂 operator new 和 operator delete函数  📂 内置类型  📂 自定义类型 📁 内存泄漏 📁 总结         欢迎收看本期【C++杂货铺】,本期内容讲解C++内存管理。包含了C++中内存

    2024年04月14日
    浏览(47)
  • 【C++杂货铺】详解string

    目录  🌈前言🌈 📁 为什么学习string 📁 认识string(了解) 📁 string的常用接口  📂 构造函数  📂 string类对象的容量操作  📂 string类对象的访问以及遍历操作​编辑  📂 string类对象的修改操作 📁 模拟实现string 📁 总结         欢迎观看本期【C++杂货铺】,本期内容

    2024年03月20日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包