面向对象编程
java 是一种面向对象编程语言,面向对象是一种分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些问题进行单独思考,最后才对某个类下的细节进行面向过程的思索。面向对象编程的本质就是 以类的方法组织代码,以对象的组织封装数据 。
静态方法与非静态方法
在对类的方法的调用中有两种调用方法:
一、 静态方法
在方法中需要用到static修饰符,会与主函数一起在内存的方法体中加载。
public class Person {
public static void main(String[] args) {
Student.say();
}
}
class Student {
//静态方法
public static void say(){
System.out.println("学生说话了");
}
}
//输出结果为 学生说话了
二、非静态方法
方法没有static修饰,那么在主类中想要调用该方法则必须先创建一个对象,使该类实例化才可以通过该对象调用这个非静态方法。
public class Person {
public static void main(String[] args) {
Student student=new Student();
student.say();
}
}
class Student {
//静态方法
public void say(){
System.out.println("学生说话了");
}
}
引用传递
public class Person {
public static void main(String[] args) {
Studnet person=new Studnet();
person.name="帅哥";
System.out.println(person.name);
change(person);
System.out.println(person.name);
}
public static void change(Studnet student){
student.name="美女";
}
}
class Studnet {
String name;
}
//输出结果是:
//帅哥
//美女
类与对象
类:是一种抽象的概念,它是一系列具有 共同属性或行为特征 的物体抽象出的对那些共有属性与行为特征的一种描述的结构,它是对一系列具体事物的描述,但不能代表某一个具体值。
对象:类中的一个具体概念,拥有具体的属性值,及对象是类的实例化。
例如:螃蟹是一个类;而花旦蟹,帝王蟹就是这个类的具体的对象。
使用new关键字创建对象的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
public class Person {
public static void main(String[] args) {
//声明类的对象Bob,Alice
Studnet Bob=new Studnet();
Studnet Alice=new Studnet();
Bob.name="Bob";
Alice.name="Alice";
Bob.age=13;
Alice.age=12;
Bob.manner();
Alice.say();
}
}
//声明一个抽象的学生类
class Studnet {
//学生类的共有属性:姓名,年龄
String name;
int age;
//学生类的共有方法
public void manner(){
System.out.println(this.name+" is studying!");
}
public void say(){
System.out.println(this.name+" say I am "+this.age+" years old.");
}
}
/*
输出为:
Bob is studying!
Alice say I am 12 years old.
*/
构造器
构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有以下两个特点:
1.必须和类的名字相同
2.必须没有返回类型,也不能写void
构造器分为无参构造器与有参构造器
-
作用:new本质是在调用构造函数;可以为对象声明初始值;
-
无参构造器
-
有参构造器
注意点:定义了有参构造函数后如果要使用无参构造,需要显示定义的一个无参构造。