Day08-面向对象编程,Java构造器
面向对象编程
Java核心思想:oop(Object-Oriented Programming)
本质:以类的方式组织代码,以对象的组织(封装)数据
三大特性:
- 封装
- 继承
- 多态
面向过程
- 步骤清晰简单,第一步该做什么,第二步该做什么
- 处理一些简单的问题
面向对象
-
分类的思维模式,将问题分类
-
适合处理复杂的问题
-
先有类再有对象,类是对象的模板,对象是类的实例化
方法调用回顾
- 静态方法
- 非静态方法
public class Main{ //包含主方法的类
public static void main(String[] args){
Student.test(); //输出1,静态方法可以直接调用
Student.test1(); //报错,非静态方法得实例化后才能调用
Student a = new Student();
a.test1(); //输出2
}
}
public class Student{ //定义了一个学生类
public static void test(){ //定义了一个静态方法
System.out.println("1");
}
public void test1(){
System.out.println("2");
}
}
静态方法只能调用静态方法
public class Main{
public static void main(String[] args){
}
public void a(){
b();
}
public void b(){
c();
}
public static void c(){
d(); //错误,static定义的方法会随着类一起加载,而非静态方法得实例化后才会加载,调用未加载的方法,错误
}
public void d(){
e();
}
public vodi e(){}
}
Java的值传递和引用传递
- 值传递
public class Main{
public static void main(String[] args){
int a = 1;
test(a); //输出值为1,方法中并未返回值
}
public static void test(int a){
a=10;
}
}
- 引用传递(本质还是值传递)
public class Main{
public static void main(String[] args){
Student a = new Student();
System.out.println(a.name);//输出为null
change(a); //这一步将对象a传递给方法change
System.out.println(a.name);//输出为陈陈陈
}
public static void change(Student a){
a.name="陈陈陈" //修改传递进来的对象a中的name属性
}
}
public class Student{ //定义了一个学生类,有一个name属性
String name;
}
类与对象的关系
类
类是一种抽象数据类型,是对一类事物的整体描述或者定义,但不代表某一个具体事物
如:手机,宠物
对象
对象是抽象概念的具体实例
如:小米手机,旺财等
public class Main{
public static void main(String[] args){
Student student = new Student();
student.name="陈陈陈";
student.study();
}
}
public class Student{
String name;
int age;
public void study(){
System.out.println(this.name+"正在好好学习");
}
}
构造器
与类名相同的方法,没有返回值
alt + insert 快捷创建构造器
作用
-
给属性赋初始值,使用new创建对象本质上是在调用构造器
-
无参构造与有参构造
public class Main{
public static void main(String[] args){
Student student = new Student();
System.out.println(student.name);//如果没有赋值,应当输出null,现在输出了陈陈陈
Teache teacher =new Teacher('陈琛琛'); //有参构造器必须输入对应的值,不然报错
}
}
public class Student{
String name;
public Student(){
this.name = "陈陈陈";
}
}
public class Teacher{
String name;
public Teacher(String name){
this.name=name;
}
}

浙公网安备 33010602011771号