面向对象:
一.面向过程和面向对象之间的区别:
都是一种思想,思维方式
面向过程: "我应该如何完成?"然后一步一步实现就可以了
面向对象: “我应该招谁来完成?” 关注的就是对象,而不关注实现过程
(面向对象依托于面向过程)
二.面向对象的优点:
1.可以将复杂的问题简单化
2.面向对象更贴合与管理者,面向过程更贴合与执行者
3.面向对象思维方式更符合现实生活人们的思维方式
三.提供了2个角色: 类 对象,实现程序开发
类: 类表示一些列对象的共性|特点|特征–>模板|图纸
对象: 表示现实生活中的具体事物
根据类创建对象
(类可以看成一类对象的模板,对象可以看成该类的一个具体实例。类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。)
四.如何自定义类:
//成员方法: 不被static关键字修饰的方法叫做成员方法
修饰符 返回值类型|void 方法名(参数列表){
功能体;
}
public class Circle {
//成员变量
public double r;
//修饰符 数据类型 方法名 形参
public double getArea(double r) {
double Area=3.14*r*r;
return Area;
}
public double getPerimeter(double r) {
double Perimeter=2*3.14*r;
return Perimeter;
}
}
1.圆能做什么? 能力|功能|作用: 求圆的周长和面积… 动词–>成员方法
2.圆的特征|特性? 半径… 名词–>成员变量
成员是属于对象
构造器
new 关键字创建对象
1.在堆中为对象开辟空间,成员属性跟随对象进入到堆内存中,并赋默认值
2.调用这个类的构造器为对象初始化信息 (第一次赋值就叫做初始化,就成员属性)
3.将地址返回给引用
构造器: 构造方法: 构造函数
就是一个特殊的方法
1.作用: 就是为对象初始化信息,不是用来创建对象的
2.使用: 跟随new使用
3.定义
修饰符 类名(参数列表){
构造器…
}
没有返回值类型,没有void,可以添加return
方法名必须与类名一致
不能和static,final,abstract一起使用
注意:
如果没有自定义的为类定义任何构造器,编译器会为你的类默认提供一个空构造(没有参数的构造器)
如果有显示定义任何构造器,编译器就不会再为你提供任意构造器了
构造器是一个方法,就可以重载
构造器可以帮助我们简化代码,在通过对象.属性之前,就可以为对象的属性赋值
构造器就是特殊的方法,也是方法,所以有方法的重载特性
如何创建对象的时候指定匹配不同的构造器???
new 类型()->()匹配不同的参数列表
public class User1 {
public static void main(String[] args) {
User u=new User();
u.email="147.com";
u.ID="1234";
u.password="sss`111";
User u1=new User("111","111","111");
User u2=new User("111","111");
System.out.println(u1.email+" "+u1.password+" "+u1.ID);
System.out.println(u2.email+" "+u2.password+" "+u2.ID);
}
}
//用户类
class User{
public String ID;//用户ID
public String password;//用户密码
public String email;//用户邮箱
//没有返回值类型和void,但是可以return!!!!!!!
public User(String UserID,String Userpassword,String Useremail) {
ID=UserID;
password=Userpassword;
email=Useremail;
}
public User(String UserID,String Userpassword) {
ID=UserID;
password=Userpassword;
email="@gameschool.com";
}
public User() {
}
}