首页 > 编程语言 >Java中类和对象概述

Java中类和对象概述

时间:2024-07-10 18:57:17浏览次数:16  
标签:Java name 构造方法 对象 概述 static 方法 public 中类

目录

前言:

一.初步了解类和对象

1.1什么是面向对象?

1.2什么是类和对象?

​二.类的定义与使用

2.1类的格式与定义

2.2对象的创建与使用

 三.this关键字的使用

3.1this的使用方法

3.2this引用的特性

 四.类的构造方法

 五.静态变量和静态方法


前言:

小编也是第一次写blog,可能有很多地方还做的不够好,但希望精心整理出来的内容对有需求的人有所帮助。

一.初步了解类和对象

1.1什么是面向对象?

Java是一门纯面向对象的语言,在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

1.2什么是类和对象?

类是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称,而对象就是某一类中具体的事物。比如,鸟是表述地球上所有的鸟的一个类,它包含所有的鸟,而其中的麻雀,鸽子,燕子等就是其中的对象。

二.类的定义与使用

一个类可以包含多个对象,同时,作为一个对象可以拥有多个属性及行为,例如,麻雀有翅膀,四肢,羽毛,喙等,都属于成员变量,麻雀可以飞翔,吃,喝水等行为称为成员方法。在Java中,我们把对象的属性及行为称为成员变量和成员方法。

2.1类的格式与定义

类的定义需要用到class关键字,具体方法如下:

classs ClassName{
    field;//属性,成员变量
    method;//行为,成员方法
}

 class是定义类的关键字,ClassName是类的名字,{}中包含类的主体

注意:

1.类名一般采用大驼峰定义

 2.一般一个文件夹定义一个类

3.main方法所在的类一般用public修饰

 4.public修饰的类要与文件名相同

public class Bird(){
    String name;//名称
    String wing;//翅膀
    String clow;//爪子
    String beak;//喙
    String feather;//羽毛
    public void fly(){
    system.out.println(name+"可以进行飞翔");
    }
}

这里定义了一个Bird类,从名称到羽毛都是属于成员变量,fly则是成员方法,一个类则是由这两部分组成。

2.2对象的创建与使用

当我们写好了一个类,就相当于在计算机中定义了一种新的类型,与int,float类似,只不过类是用户自定义了一个新的类型。当我们定义好了一个Bird类,有了这个自定义的类型之后,我们就可以使用这个类来定义实例(或者称为对象)。

我们使用new关键字进行创建对象。

例如我们定义一个包含姓名和年龄的学生类:

public class Student{
	public String name;//姓名
	public int age;//年龄
	public void introduce() {
		System.out.println("我的名字是"name+","今年"+age+"岁");
	}
	public static void main(String[] args) {
		Student s1=new Student();
		s1.name="小帅";
		s1.age=18;
		s1.introduce();
	}
}

注意:
1.new 关键字用于创建一个对象的实例
2.使用 . 来访问对象中的属性和方法
3.同一个类可以创建多个实例

 三.this关键字的使用

3.1this的使用方法

this关键字用于描述本类当前的对象,当前对象不是某个new出来的实体对象,而是当前正在编辑的类,this只能在本类中使用。

如定义一个图书类:

public class Book{
    private STring name;
    public String getName(){
    return name;    
    }
    public void setName(String name){
    this.name=name;
    }
}

成员方法setName()中的形式参数的名称相同,均为name,那么如何区分类中使用的是哪一个变量?这时候就需要用到this关键字来进行分别。

this表示本类对象的引用,this关键字被隐式的用于引用对象的成员变量和方法。上述类中,this.name指的就是Book中的成员变量,而右边的第二个name指的就是形参name,实际上,setName()的功能就是将形参name的值赋予成员变量name。

3.2this引用的特性

注意:
this的类型:对应类类型引用,即哪个对象调用就是哪个对象的引用类型
this只能在"成员方法"中使用
在"成员方法"中,this只能引用当前对象,不能再引用其他对象
this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法对象的引用传递给该成员方法,this负责来接收

 四.类的构造方法

 在类中,除了成员方法以外,还存在一种特殊的方法,就是构造方法,构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。

//构造方法的格式:
public className(){
    ~~~      //构造方法体
}

这里需要注意的是:

1.构造方法无返回值

2.构造方法的名称要与本类的名称相同

3.如果没有明确构造函数,则类会自己创建一个不带参数的默认构造方法

上述Book类,没有明确构造函数,则由系统自己生成一个不带参数的构造函数,如下:

public Book(){
    
}

里面是null,为空值

以上是不带参的构造方法,那我们同时也可定义带参的构造方法。

例:小帅去KFC买可乐,店家默认如果客人不说需要加冰的话只+一块冰,当小帅说+三块冰的时候店家加三块冰。

public class Ice {
	public int icecount=1;
	Ice(){    //不带参的构造方法
		System.out.println("当顾客无要求时,默认加"+icecount+"个冰块");
	}
	Ice(int icecount){    //带参的构造方法
		this.icecount=icecount;
		System.out.println("当提出要求时,要求加"+icecount+"个冰块");
	}
	public static void main(String[] args) {
		Ice s1=new Ice();//顾客s1无提出要求
		Ice s2=new Ice(3);//客人s2要求加三个冰块

	}

}

这里的两个Ice就分别是一个不带参的构造方法和带参的构造方法

五.静态变量和静态方法

static修饰的变量和方法称为静态变量和静态方法,又或者称为类变量和类方法。无static修饰的方法称为实例方法。

类方法只能调用类方法,不可调用实例方法。

实例方法既可调用类方法也可调用实例方法

 被声明为static的变量和方法被称为静态成员,静态成员属于类所有,区别于个别对象,可以在本类或者其他类使用类名和“.”运算符调用静态成员,语法如下:

类名.静态类成员

例如:创建一个StaticDemo类,在类中使用static关键字定义一个属性和一个方法,并在主方法中调用。

public class StaticDemo{
    static double pi=3.1415;        //定义静态变量
    public static void method(){
    System.out.println("这是静态方法");    //定义静态方法
    }
    public static void main(String[] args){
    System.out.println(StaticDemo.pi);//调用静态变量
    StaticDemo.method();//调用静态方法
    }
}

静态变量与静态方法的作用通常是为了提供共享数据或方法。

关于static关键字需注意的几点:

1.静态方法中不可使用this关键字

2.静态方法中不可直接调用非静态方法

3.局部变量不可使用static关键字声明

4.主方法必须用static声明

5.只有内部类才可以使用static关键字声明

结语:分享就到这里了,如若作者有什么错误或者描述不清的地方,欢迎大家进行批评指正(求生欲很强,害怕网络暴力,大家轻点喷)

标签:Java,name,构造方法,对象,概述,static,方法,public,中类
From: https://blog.csdn.net/weixin_74396081/article/details/140301020

相关文章

  • 每天两道Java面试题(一)
    1、this关键字和super关键字的区别及联系this关键字用在本类中。在类的内部,可以在任何方法中使用this引用当前对象。this关键字是用来解决全局变量和局部变量之间的冲突。this()可以调用同类中重载的构造方法,并且需要放在第一行。super关键字用在子类中。在子类中可以通......
  • 使用Java9 Flow API进行Reactive Programming
    importjava.util.concurrent.Flow;importjava.util.concurrent.Flow.Publisher;importjava.util.concurrent.Flow.Subscriber;publicclassReactiveExample{publicstaticvoidmain(String[]args){//创建一个发布者,发布一系列的数字Publisher......
  • Java Executors类的9种创建线程池的方法及应用场景分析
    在Java中,Executors类提供了多种静态工厂方法来创建不同类型的线程池。在学习线程池的过程中,一定避不开Executors类,掌握这个类的使用、原理、使用场景,对于实际项目开发时,运用自如,以下是一些常用的方法,来一一细说:newCachedThreadPool():创建一个可缓存的线程池,如果线程池中......
  • Java面向对象小游戏--文字版格斗游戏(附带全套源代码)->基于JavaBean
    一、前言java部分的基础学习已经完结,接下来给大家分享的大多为java相关的案例分析,也会有一些小项目,这点不要太过于担心,主要还是基础部分要打牢固。java部分的难点就在面向对象这一点,学习C语言的小伙伴们应该是第一次听说方法。这点也是和C语言相差巨大的地方,不过对于学习过pyt......
  • Java面向对象基础篇综合训练(附带全套源代码及逐语句分析)->基于javabeen
    一、前言还是那句话面向对象是Java的重点,同时也是难点,小编会在此部分分享一些综合型的案例,难度从易到难,本篇文章只是一些基础的操作,综合能力并不是太高。大家可以试着观看一遍自己去打开编译器尝试一下。不知道有多少读者是跟着小编进行学习的,今天是学习Java的第五天,希望大家......
  • JavaScript如何将字符串形式里的img图片添加属性
    方法一:使用正则表达式以下例子中将会在img图片中添加crossorigin属性lethtml=`<p>打撒抠脚大汉噶刷卡机很大凯撒</p><p>规范化是的冯绍峰东风浩荡试试</p><imgsrc="http://s3.v.360xkw.com/yzb/photos/1688536327316_ca0e2e3d.jpg"alt=""......
  • Java计算机毕业设计生鲜仓储管理系统(开题+源码+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着生鲜电商的蓬勃发展和消费者对食品新鲜度、安全性的日益重视,生鲜仓储管理成为了保障供应链顺畅与产品质量的关键环节。然而,传统的生鲜仓储管理模......
  • Java-常用API
    1-JavaAPI:指的就是JDK中提供的各种功能的Java类。2-Scanner基本使用Scanner:一个简单的文本扫描程序,可以获取基本类型数据和字符串数据构造方法:Scanner(InputStreamsource):创建Scanner对象System.in:对应的是InputStream类型,可以表示键盘输入Scannersc=n......
  • Java后端tlias员工部门管理-员工管理下-MyBatis-4
    当我们完成了员工管理的分页查询,那么接下来就要完成员工管理的批量删除、新增员工、根据ID查询员工、根据ID修改员工功能。下图是最终完成的示例 批量删除批量删除也是查询语句,所以我们在EmpMapper只需要编写方法,而不需要在上面编写复杂的查询语句,而是在EmpMapper.xml编写......
  • Java后端tlias员工部门管理-前后端联调-阿里云OSS-5
    当完成了员工和部门管理的两大模块的所有基本功能,那么我们接下来就先进行yml文件配置。Yml文件配置为什么要换我们需要把这个application.properties配置文件改成application.yml,因为对比了其他的配置文件的格式,有诸如一下优点中文变成???那么我们进入application.proper......