面向对象
面向对象
一、初识面向对象
举例 Math 类
public final class Math {
private Math() {
}
public static final double E = 2.7182818284590452354;
public static final double PI = 3.14159265358979323846;
public static double sin(double a) {
// code...
}
public static double toRadians(double angdeg) {
return angdeg / 180.0 * PI;
}
}
举例 String 类
public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
private final char value[];
private int hash; // Default to 0
private static final long serialVersionUID = -6849794470754667710L;
private static final ObjectStreamField[] serialPersistentFields =
new ObjectStreamField[0];
public String() {
this.value = "".value;
}
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
public String(char value[]) {
this.value = Arrays.copyOf(value, value.length);
}
}
面向过程与面向对象
面向过程思想:步骤清晰简单,第一步做什么,第二步做什么。
面向对象思想:分类的思维模式
首先分析要解决的问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
从宏观上、从整体上合理分析,使用面向对象的思路来分析整个系统。
具体到微观操作,仍然需要面向过程的思路去处理。
面向对象编程( Object- Oriented Programming,OOP)
面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据
在认识论角度上,先有对象后有类。对象是具体的事物。类是对对象的抽象。
从代码运行角度上,先有类后有对象。类是对象的模板。
二、对象的创建分析
package com.gcbeen.oop;
public class Pet {
private String name;
private int age;
public Pet() {
System.out.println(this.name);
System.out.println(this.age);
System.out.println("=Pet()=");
}
public Pet(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Pet pet = new Pet();
// name: null
// age: 0
// =Pet()=
使用new关键字创建对象的时候
-
分配内存空间给对象
-
给对象进行默认的初始化
-
调用类中构造器
构造器
Pet cat = new Pet();
System.out.println(cat.getName());
System.out.println(cat.getAge());
Pet dog = new Pet("旺财", 3);
System.out.println(dog.getName());
System.out.println(dog.getAge());
// null
// 0
// 旺财
// 3
构造器的有以下俩个特点:
-
必须和类的名字相同
-
必须没有返回类型也不能写void
构造器的作用:
-
new本质在调用构造方法
-
设置对象属性的值
注意:定义有参构造器之后,如果想使用无参构造器,必须定义一个无参构造器。
对象初始化时,属性的默认值
整型数字(int, short, long, byte): 0
浮点型数字(float, double):0.0
char:\u0000
boolean: false;
引用型:null
Unicode编码中\u0000代表的是空字符,属于控制字符,也叫不可显字符。
这个空字符与空格不同,空格的编号是 \u0020
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术