Java Day6
Java day6
面向对象
(Object Oriented Programming,OO)
1.面向对象的思想
面向过程思想
- 线性思维,一步一步做,步骤清晰简单适合一些较为简单的问题
- 适合解决一些小的问题
- 造轮子
面向对象思想
- 物以类聚,分类的思维模式,思考问题首先解决问题需要那些分类。最终才对某个分类下的细节进行全面向过程的思索。
- 面向对象更适合处理一些复杂的问题,是和处理需要多人协作的问题。
- 造车
对于描述复杂的事物,为了从宏观上把握,从整体上合理的分析。
2.面向对象三大特性
- 封装
- 继承
- 多态
3.类与对象的关系
从认识论的角度考虑是,先有对象后有类。对象,是具体的事物。类是对对象的抽象。
在编程中是相反的,是先有类后又对象。类是对象的模板。
类
1.类-方法
- 定义一个方法
1 | public class Demo01 { |
- 一个类中只能有一个public class
2.break 和 return区别
return
- 函数的结束
- 返回值必须与函数返回值一样
break
- 跳出循环
补充 可变形参
Java中函数参数不确定有多少
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16public class Demo01 {
public static void main(String[] args){
}
// 修饰符 返回值类型 方法名(....){
//
// }
// 可变形参
public void sayHello(int ...i){
System.out.print("这个函数可以有多个参数");
}
public void sayHello(int j, int ...i){
System.out.print("函数为可变形参时候要注意,可变形参必须在最后一位");
}
}- 补充 ,一个函数定义只能一个可变形参,多个形参会报错
3静态方法与非静态方法调用
- 静态方法 在定义类的时候就创建
- 非静态方法 实例化一个对象后才存在
- 静态方法与非静态方法不是在一个层级,静态与类一起加载而非静态与实例化对象一起加载,
- 定义一个类,静态方法不能调用非静态方法(静态方法存在时,非静态方法还是未定义)
1 | public class Student { |
学生类:
1 | public class Main { |
4Java是值传递
通过函数实参传递给形参时,不会改变实际参数的值
1
2
3
4
5
6
7
8
9
10
11
12
13
14import com.Skr.Student;
public class Main {
public static void main(String[] args) {
// 静态方法调用
Student.static_say();
// Student.say();//这是一个非static修饰的方法 非静态方法只能创建一个实列对象来初始化
// 非静态方法调用 实例化这个类
Student student = new Student();
// 通过实例化才能 通过实例化对象使用非静态方法
student.say();
}
}通过引用改变其值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20public class Demo01 {
public static void main(String[] args){
Person person = new Person();
// 输出为空
System.out.println(person.name);
// 引用传递改变其值
change(person);
System.out.println(person.name);
}
public static void change(Person p){
p.name = "通过引用改变的值";
}
}
class Person{
String name;
}
5.new关键字
类似于C中 malloc()
使用new关键字创建对象,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中的构造器的调用
类中的构造器也称为构造方法,构造函数是在进行创建对象的时候必须要调用的,并且构造器有一个特点
- 必须和类的名字相同
- 必须没有返回类型,也不能写void
1 | import com.Skr.Student; |
- ps 类中属性 要声明public 外部才能访问,否则只能通过内部方法调用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Loser の Blog!