package com.java.exp07;
- 1、面向对象概述
- 1.1、对象
- 现实中一些随处可见的事物就是对象,对象是事物存在的实体。
- 计算机将对象划分为静态部分和动态部分(静态部分即属性,动态部分即行为);
- 计算机首先将现实世界中的实体抽象为对象,再去考虑这个对象具备的行为和属性;
- 类实质上就是封装对象属性和行为的载体,而对象则是类抽象出来的一个实例。
- 1.2、类
- 类就是同一类事物的统称。
- 1.3、封装
- 面向对象程序设计具有以下特点:封装性、继承性和多态性。
- 封装是面向对象编程的核心思想
- 采用封装的思想保证了类内部数据结构的完整性,避免了外部操作对内部数据的影响,调高了代码的可维护性。
- 1.4、继承
- 继承性主要利用特定对象之间的共有属性,提高代码的复用性
- 1.5、多态
- 父类对象调用子类方法
- 2、类
- 2.1、成员变量
- 成员变量对应于类对象的属性
- 2.2、成员方法
- Java中的成员方法无返回值可以使用void关键字表示
- 如果一个方法中含有和成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行
- 类成员变量和成员方法可以统称为类成员。
- 2.3、权限修饰符
- private 仅本类可访问
- protected 本类和同包其他类或子类
- public 本类、同包其他类或子类、其他包的类或子类
- 当声明类是不使用以上三个关键字时,则这个类预设只有一个包中的类可以调用这个类的成员变量或成员方法
- 2.4、局部变量
- 在成员方法内定义的变量称为局部变量
- 局部变量在方法执行时被创建,在方法执行结束时销毁
- 2.5、局部变量的有效范围
- 在作用范围外使用局部变量是一个常见的错误,因为在作用范围外并没有声明局部变量的代码
- 2.6、this关键字
- 在Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法
- this引用就是本类的一个对象。
- 3、类的构造方法
- 构造方法的特点:没有返回值、名称要和奔雷的名称相同
- 构造方法的定义格式
- 构造方法修饰符 构造方法的名称(){
- //....构造方法体
- }
- 如果类中没有明确定义构造方法,编译器会自动生成一个不带参数的默认构造方法
- 如果在本类中定义了带参的构造方法,需要再定义一个无参的构造方法,方便实用
- this调用有参的构造方法必须放在第一句。
- 4、静态变量、常量和方法
- 由static修饰的变量、常量和方法被称为静态变量、常量和方法;
- 被声明为static的变量、常量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,
- 可以再本类或其他类适用类名和"."运算符调用静态成员
- 在静态方法中不可以使用this关键字
- 再静态方法中不可以直接调用非静态方法
- 在Java中规定不能将方法体内的局部变量声明为static的。
- 在执行类时,希望先执行雷得初始化动作,可以使用static定义一个静态区域。静态代码块的内容只会被执行一次
- 5、类的主方法
- 主方法是静态的
- 主方法没有返回值
- 主方法的形参为数组
- 6、对象
- 6.1、对象的创建
- 当创建对象是时,自动调用构造方法,也就是说在Java语言中初始化和创建是被捆绑在一起的
- 每个对象都是相对独立的,在内存中占据独立的内存,并且每个对象都具有自己的生命周期。
- 在Java语言中对象和实例事实上可以通用。
- 6.2、访问对象的属性和行为
- 对象.类成员
- 6.3、对象的引用
- Book book = new Book();
- 引用只是存放一个对象的内存地址,并非存放一个对象
- 6.4、对象的比较
- equals()方法用于比较两个对象引用所指的内容是否相同
- == 运算符比较的是两个对象引用的地址是否相等
- 6.5对象的销毁
- 对象引用超过其作用范围,这个对象将被视作垃圾
- 将对象复制为null
- 垃圾回收或finalize()方法不保证一定会发生,如Java虚拟机内存损耗殆尽是,它是不会执行垃圾回收的
-
- */
public class Demo {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("张三");
System.out.println(stu.getName());
Rectangle rec = new Rectangle(5,4);
System.out.println(rec.area());
for(int i = 0; i<args.length;i++){
System.out.println(i);
}
}
}
package com.java.exp07;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.java.exp07;
public class Student extends Person {
}
package com.java.exp07;
public class Rectangle {
private int length;
private int width;
public Rectangle() {
super();
}
public Rectangle(int length, int width) {
super();
this.length = length;
this.width = width;
}
public int area(){
return this.length*this.width;
}
}