面向对象语法 1、面向对象思想 面向过程 面向对象。 开发哲学 思想 软件本质是什么? 软件是一种表达现实世界的逻辑。 世界是什么? 事物 和事物之间的关系过程。 数据结构表示关系; 事物 (状态 行为) 对象 (属性 方法) 对象 是构成软件 的单位; 对象有什么 属性 方法; 构成软件的粒度 扩大了; 2、类的定义 class 类的名字 { //属性的定义 //方法的定义; } //类的定义 一个符号化的类的定义 final||public||abstract||static class XX extends YY implments ZZ{ //定义属性 public||private||protected||static transient||synchronized||... 修饰符号 //定义方法 public||private||protected||static transient||synchronized||... 修饰符号 //构造函数 //代码块 //静态代码块 } 举例说明 以用为度 class Student{ String id; String name; int age; boolean stduy(String coursename){ return false; } boolean sing(String song_name){ return false; } boolean eat(Object something){ return false; } } 添加一个知识点 public class Student{ } public 修饰一个类的时候,两层含义 1、该类必须存为 类名.java 2、该类是公共类,任何人都可以使用; 编译得到的是类名.class 3、对象的生成和使用 声明 Student tom; 声明的本质是起名字,对象不存在; 创建 tom = new Student(); //创建对象; 初始化 属性一一赋值 tom.id="xxx"; tom.name="****"; tom.age=xx; 创建的过程再解析 对象是new 出来的,new 做了三件事 a、分配空间; 再堆中为属性分配空间 b、默认初始化;调用类中的直接初始化语句 c、调用构造函数。调用类的构造函数,没有 调用默认; 画图说明该过程: 创建对象一定要明白:对象的名字和对象 不是一个东西; 名字在栈中、对象在对中; 名字也叫做引用,引用的本质是指针, 但是,Java 不提倡叫指针。 (Java 对外从来的宣传都是Java去掉指针) 使用对象 有名字的 tom.id; tom.sing(); 匿名对象 new Student().sing("喜洋洋"); 匿名对象一般都是一次性调用的时候使用。 4、构造函数 tom = new Student(); tom.id=""; tom.name=""; tom.age=22; 太烦 能不能 tom = new Student("1234","赵四",20); 我们为了简化 初始化过程, 我们搞一个语法 在new 的时候,接受参数,然后参数赋值 给对象的属性,这样,new 结束,对象 初始化结束。 这玩意,叫做构造函数。 构造函数语法规定 1、构造函数没有返回; 2、构造函数的名字必须和类名一样。 举例: class Student{ String id ; String name; int age = 33; Student(String id,String name ,int age){ this.id=id; this.name=name; this.age = age; } boolean stduy(String coursename){ return false; } boolean sing(String song_name){ return false; } boolean eat(Object something){ return false; } } 构造函数注意: a、一个类,默认有一个无参构造; b、如果用户编写构造,则不提供默认构造; 所以,程序员编写类的习惯一定要自己写无参构造。 构造函数式为了初始化方便设计的一种函数, 所以,一个类中,可以有任意多个构造函数, 可以实现 初始化更加灵活、方便。 5、函数的重载 把功能相近的方法设计成一样的函数名,不同的参数。 这种现象叫做,函数的重载。 好处:别人使用方便。 public void add(int x,int y){} public void add(int a,int b){} 这个不是 所谓 不同参 :指 个数不同,或者,类型不同; 6、对象的清除 堆中的数据的,是我们软件最占用内存地方; |
Java 面向对象基础
最新推荐文章于 2022-12-10 20:18:30 发布