(一)、面向对象:
1.概念:
面向对象是一种思想,能让复杂问题简单化,程序员不需要了解具体的实现过程,只需要指挥对象去实现功能。(类为图纸,对象为实体)
2.面向对象学什么?
1)、学习获取已有对象并使用. (l聊天,手机)
2)、学习如何自己设计对象. (不会飞,飞机)
(二)、类和对象 :
类: 是对象共同特征的描述
对象: 是真实存在的具体东西
1.类格式:
public class 类名{ 成员便零 成员函数 构造器 代码块 内部类 }
2.类对象定义的格式:
类名 类对象 =new 类名();
3.类方法的定义
修饰符 数据类型 变量名 (){};
4.类和类对象的连用
1.创建同一个包中的类:
package test; public class Phone { //创建类phone String brand; double price; public void call() {System.out.println("打电话");} public void playgame() {System.out.println("打游戏");} }
2.创建类对象和引用类对象
package test; // 包名 import java.util.Scanner; public class test1 { //项目名 public static void main(String []avgs) { Phone p=new Phone(); p.brand="华为"; //引用数据成员 p.price=2103; p.call(); //饮用方法 p.playgame(); } }
5.总结
1.定义类的建议:
1). 类名首字母建议大写,英文、有意义。满足驼峰模式。不能用关键字,满足标识符规定;
2).一个代码中可以定义多个类,但是只能一个类是public修饰的,public修饰的类名必须是Java代码的文件名称.
eg:
2.成员的格式是什么样的,有什么特点
1).成员变量的完整定义格式是: 权限修饰符 数据类型 变量名称=初始化值;
int brand //不加权限修饰符默认是主方法的权限
eg:
主方法:
package test; // 包名 import java.util.Scanner; public class test1 { //项目名 public static void main(String []avgs) { Phone p=new Phone(); p.setBrand("华为"); p.setPrice(2999); System.out.println(p.getBrand()); System.out.println(p.getPrice()); } }
类方法:
package test; public class Phone { private String brand; private double price; public void setBrand(String b) { brand=b; } public String getBrand () { return brand; } public void setPrice(double p) { price=p; } public double getPrice() { return price; } }
2).一般无需指定初始化值.
3.权限修饰符
**private 😗*权限修饰符
1)、可以用来修饰成员(成员变量和成员方法)。
2)、被private修饰的成员只能在本类中才能被访问。
3)、针对private修饰的成员变量,如果需要被其他类使用,需要提供被公有权限修饰的方法.💕
eg:
主方法:
package test; // 包名 import java.util.Scanner; public class test1 { //项目名 public static void main(String []avgs) { Phone p=new Phone(); p.setBrand("华为"); p.setPrice(2999); System.out.println(p.getBrand()); System.out.println(p.getPrice()); } }
调用类:
package test; public class Phone { private String brand; private double price; public void setBrand(String b) { brand=b; } public String getBrand () { return brand; } public void setPrice(double p) { price=p; } public double getPrice() { return price; } }
(三)、面向对象的三大特征:
面向对象的三个基本特征是:封装、继承、多态。封装最好理解了。
1).封装是面向对象的特征之一,是对象和类概念的主要特性。
(对象代表什么,就的封装对应的数据,并提供数据的行为)
告诉我们,如何正确的设计对象的属性和方法
假如说:耗牛把吉士先生给KO了,那么请问凶手是谁呢?
答案就是:吉士先生自己ko的,法律判决书上也会写耗牛持触角把吉士先生给整死的,在这里耗牛也就是调用了吉士先生凉凉的方法。在这里对象是吉士先生,我们就的封装吉士先生的数据和行为.
2).面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
3).多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
(四)、this指针
背景:因为根据阿里巴巴JAVA开发手册,我们应该见名示意,所以我们在方法中给数据变量赋值的时候,我们应该使用和数据变量同名的变量名。但是如果使用同名变量名的话,就相当于把自己赋值给自己,就会默认为空值,达不到我们想要的结果。所以此时我们要用this指针来调用.
如果全局变量和局部变量同名的时候,局部里面的先调用局部里面的变量.
this. 同名数据变量========== 调用全局数据变量