这一篇文章是2020年1月1日发布,祝大家元旦快乐!也正式步入Java基础开发学习阶段!跟着我的文章顺序、回顾我走过的Java里程,脚踏实地,带你学习!
今年的目标是粉丝突破8W
类和对象
Java是面向对象的程序设计语言,类在面向对象中起着重要的作用,类可以用来定义变量,这种类型的变量统称为引用变量,所有的类都是引用类型。
定义类
面向对象程序设计有两个重要的概念:类(class)和对象(Object)
类是某一批对象的抽象,可以理解为某种概念。对象是一个具有存在的实体。
定义类的语法
修饰符 class 类名 {
......
}
修饰符:
修饰可以是public、final、abstract,或者不要修饰符,但这仅仅只能满足语法上的要求。
类可以包含三个主要的成员:构造器、成员变量和方法
类中成员定义的顺序没有任何影响,成员之间可以相互调用,但是static修饰的成员不能访问没有static修饰的成员!
构造器:
构造器是类的根本,没有构造器,那么这个类通常没有办法创建实例,如果没有写构造器,Java会为这个类提供一个默认构造器。若已经编写了构造器,Java就不会为这个类提供构造器。
定义成员变量的语法
修饰符 成员变量类型 成员变量名 = 值;
修饰符 成员变量类型 成员变量名;
修饰符
成员变量的修饰符可以是:public、protected、private、static、final、abstract,其中public、protected 和 private 三个只能出现其一。可以与static、final 组合起来一起修饰成员变量。
成员变量类型
成员变量类型可以是Java中任何数据类型,包括基本类型和引用类型!
成员变量名
成员变量的只要符合命名规范即可,但不建议瞎命名哈,别到最后你自己都看不懂。可以用大驼峰、小驼峰或者有意义的符合规范的词来命名。
默认值
定义成员变量可以指定一个默认值。也可以不指定!例如int不指定默认值用静static修饰,默认值是0,布尔类型不指定默认值,用static修饰默认值是false。
定义方法(语法)
修饰符 方法返回值类型 方法名(形参, 形参, ...){
...//方法体
}
修饰符
修饰符可以是:public、protected、private、static、final、abstract,其中public、protected 和 private 三个只能出现其一,abstract 和 final 两个只能出现其一。他们都可以结合 static 使用。
方法返回值类型
可以是Java允许的任何类型,包括基本类型和引用类型!如果声明了返回值类型,那么必须有着有效的return语句,才能够进行返回!若没有返回值,则使用 void 声明!
方法名
只要符合Java的命名规范即可,还是那样,不要瞎命名,可以用大驼峰、小驼峰或者有意义的符合规范的词来命名。这样会拥有更好地可读性和可维护性!
形参
用于指定该方法可以接收的值,可以没有,可以有多个,其写法是:参数类型 形参名
多个参数之间应该以英文状态下的 , 隔开,参数类型 和 形参名 之间用英文空格隔开
谁调用这个方法,谁就要负责给形参传值(必须,除非重载,后期会讲)!
构造器(语法)
构造器是一个特殊的方法,语法如下:
修饰符 构造器名(形参, 形参, ...){
...
}
修饰符
修饰符这一部分可以省略,也可以是public、protected 和 private 三个其中一个
构造器名
构造器名必须和类的名字相同
形参
和定义方法的使用一样。但是,构造器是没有返回值的,也不能用 void 声明。但是也可以加上 void ,不会报错,加上之后Java编译器会把它当成方法来处理,而不是构造器!
定义类的完整例子
/**
* 定义类
*/
public class TestData {
//定义成员变量
private String name;
private String sex;
private int age;
/**
* 这是构造器
*/
public TestData(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
/**
* 这是有返回值方法
*/
public String getName() {
return name;
}
/**
* 这是无返回值方法
*/
public void printfSex() {
System.out.println("sex:" + sex);
}
/**
* 这是有返回值方法
*/
public int getAge() {
age += 1;
return age;
}
}
this关键字引用
看定义类的构造器的时候,出现了this关键字,它的作用是总算是指向调用该方法的对象。根据this出现的位置不同,this作为对象对的默认引用有两种情况!
- 构造器中引用该构造器正在初始化的对象!
- 在方法中引用调用该方法的对象!
对象的定义和使用
创建对象的根本途径就是构造器,在上方代码中写入构造器,3个形参,那么实例化就要传入对应的参数,如果没有构造器,那就可以不传!通过new关键字来调用某个类的构造器即可创建实例!
对象的定义
在上面 TestData 类中,定义好了各种方法,接下来看看定义对象
public class Main {
public static void main(String[] args) {
//定义对象
TestData testData = new TestData("第三女神", "男", 26);//括号中传入参数,有即可传,对应构造器
}
}
其实就是实例化定义好的类,这就定义了一个对象!
实例化完成之后存在两个东西,一个是TestData对象、一个是testData变量
对象的使用
在 TestData 类中,有 getName 方法 、 printfSex 方法 getAge 方法!
通过 . 分隔符来进行调用即可!
public class Main {
public static void main(String[] args) {
//定义对象
TestData testData = new TestData("第三女神", "女", 26);
//获取年龄
int age = testData.getAge();
System.out.println(age);
//获取名字
String name = testData.getName();
System.out.println(name);
//输出性别
testData.printfSex();
}
}
运行效果如下:
因为走getAge方法里面有把年龄+1的逻辑运算,所以输出也会年龄+1!
如果类中方法使用了static进行修饰,那么可以直接通过类名直接引用他的static修饰的方法!现在来对 TestData 类稍作修改!
/**
* 定义类
*/
public class TestData {
static void getFunction() {
System.out.println("直接通过类名调用了!");
}
}
现在来调用getFunction这个方法:
public class Main {
public static void main(String[] args) {
//引用TestData类中static修饰的方法
TestData.getFunction();
}
}
这样就不用实例化这个对象了,但是不推荐这样做,包括我在日常开发的时候,会有很少这样的引用,因为很可能会造成内存泄漏(现在不懂没关系,以后就懂了)!
Java都是有main方法作为入口的
其它
欢迎关注!带你一步一步学Java,在BiliBili有着相关的的视频讲解!
https://space.bilibili.com/475557311
下一篇:Java 方法详解 https://myhub.blog.csdn.net/article/details/103932362