Java入门二(1)什么是类和对象

6 篇文章 0 订阅
5 篇文章 0 订阅

前言:

1.作者因学校新开的课程需要学到Java的基础知识,所以在此做个记录,新手学习难免有错误或理解不对的地方,望见谅。如发现错误希望各位大牛指正。
2.这篇教程是一篇入门的教程,主要是方便自己的二次学习。
3.关于Java的简介及一些基础介绍后续有空可能会将Java入门一整理出来。

话不多说,进入正题:

类和对象

1.1 什么是类和对象

什么是对象
万物皆对象,客观存在的事物皆为对象。例如钟表,汽车,手机都可称之为对象。

面向过程——步骤化
面向过程就是分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用即可。

面向对象——行为化
面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为。

例如:用户到商店买手机,要求要一部屏幕5寸,运行内存8G,存储256G,后置4200万,能打电话和上网的手机。售货员拿出一部苹果手机,该部手机满足用户的需求。此时,我们称这部手机为对象。而这个买手机的过程就可以称之为面向对象。

上述用户描述手机性能的信息可以称为
什么是
类是模子,确定对象将会拥有的特征(属性)和行为(方法)

类的特点
· 是对象的类型
· 具有相同属性和方法的一组对象的集合

什么是对象的属性
属性——对象具有的各种特征
每个对象的每个属性都拥有特定值
例如,上述手机的屏幕尺寸-5寸,运行内存——8G等

什么是方法
方法——对象执行的操作或者说这个对象能干什么
例如,苹果手机可以打电话,可以上网。

类和对象的关系
类是抽象的概念,仅仅是模板,比如说:“手机”
而对象是一个你能看得到、摸得着的实体
在这里插入图片描述

1.2 如何定义Java中的类
定义类
1.类的重要性:所有Java程序都以类class为组织单元
2.什么是类?
类是模子,确定对象将会拥有的特征(属性)和行为(方法)
3.类的组成:属性和方法
4.定义一个类的步骤
a.定义类名
b.编写类的属性
c.编写类的方法

package com.sytest;

public class Phone{
	//属性(成员变量)有什么
	float screen;
	float cpu;
	float mem;

	//方法 干什么
	void call(){
		System.out.println("Phone有打电话功能");
	}
	void sendMessage(){
		System.out.println("screen:"+screen+"cup:"+cpu+"mem:"+mem+"Phone有发短信功能");
	}
}

1.3 如何使用Java中的对象
Java对象
使用对象的步骤
1.创建对象:
类名 对象名 = new 类名();
Phone phone = new Phone();
2.使用对象
引用对象的属性:对象名.属性
phone.screen = 5; // 给screen属性赋值5
引用对象的方法:对象名.方法名()
phone.sendMessage(); // 调用sendMessage()方法
3.对象实例化——new + 类名();(new了一个类名)
在这里插入图片描述

package com.sytest;

public class InitailPhone{
	public static void main(String[] args){
		Phone phone = new Phone();
		phone.sendMessage(); //float型变量赋值时需加f,否则默认浮点数是double型
		// 给实例对象赋值
		phone.screen = 5.0f;
		phone.cpu = 1.4f;
		phone.mem = 2.0f;
		// 调用对象的方法
		phone.sendMessage();
	}
}

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

1.5 Java 中的成员变量和局部变量
成员变量和局部变量
1.成员变量
在类的定义中,用来描述对象将要有什么。
2.局部变量
在类的方法中定义,在方法中临时保存数据。
在这里插入图片描述
成员变量和局部变量的区别
1.作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
2.初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
3.在同一个方法中,不允许有同名的局部变量;
在不同的方法中,可以有同名的局部变量
4.两类变量同名时,局部变量具有更高的优先级

1.6 Java中的构造方法
1.使用new+构造方法 创建一个新的对象
2.构造方法是定义在Java类中的一个用来初始化对象的方法,构造方法与类同名且没有返回值
在这里插入图片描述

3.无参构造方法和带参构造方法的使用

package com.sytest;
// 主函数中
public class InitailPhone{
	public static void main(String[] args){
		// 通过无参的构造方法创建对象
		Phone phone = new Phone();

		// 通过有参的构造方法创建对象
		Phone phone1 = new Phone(5.0f,1.4f,2.0f);
	}
}
package com.sytest;
//无参的构造方法
public class Phone{
	float screen;
	float cpu;
	float mem;
	public Phone(){
		System.out.println("无参的构造方法执行了!");	
	}
	
	public Phone(float newScreen,float newCpu,float newMem){
		screen = newScreen;
		cpu = newCpu;
		mem = newMem;
		System.out.println("有参的构造方法执行了");
	}
}

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

4.构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值。
5.当没有指定的构造方法时,系统会自动添加无参的构造方法。
6.当有指定的构造方法时,无论有参还是无参的构造方法,都不会自动添加无参的构造方法。
7.构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法。

1.7 Java 中的 static 使用之静态变量
大家都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立。然而在某些时候,我们更希望该类所有的对象共享同一个成员。此时就要用到static
Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问
使用 static 可以修饰变量、方法和代码块

例如,我们在类中定义了一个 静态变量 hobby ,操作代码如下所示:
在这里插入图片描述
运行结果:
在这里插入图片描述
注意:静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收

1.8 Java 中的 static 使用之静态方法
与静态变量一样,我们也可以使用 static 修饰方法,称为静态方法或类方法。其实之前我们一直写的 main 方法就是静态方法。静态方法的使用如:
在这里插入图片描述

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

需要注意
1、 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。如:
在这里插入图片描述
如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。如:在这里插入图片描述

2、 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量,如下所示:在这里插入图片描述

3、 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。如:在这里插入图片描述

1.9 Java 中的 static 使用之静态初始化块
Java 中可以通过初始化块进行数据赋值。如:在这里插入图片描述

在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
需要特别注意:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
例如:
在这里插入图片描述

运行结果:在这里插入图片描述
通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值