目录
前言:
小编也是第一次写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