面向对象的理解
1、什么是类?
类是对具有相同属性(特征)和行为(方法)的一系列个体的集合,类似一个抽象的概念,现实中是不存在的。
/*
*
* 定义现实世界中的学生类型
* Student是一个类,一种引用类型
* 概念上是一个定义,现实世界中不存在
*/
package a定义一个类;
public class Student {
//属性:
//学号
int id;//成员变量,实例变量
//id是对象级别的,必须先有对象才能访问,不能使用类直接访问
//姓名
String name;
//性别
boolean sex;
//年龄
int age;
//住址
String addr;
//方法:
}
2、什么是对象?
从一个类中拿到具有具体属性和行为的个体,被称之为对象,现实中山存在的。另一种意思,对象是由一组数据结构和处理他们的方法组成的,其中重点"数据"包括对象的特性、状态等静态信息;"方法"就是行为,包括该对象对数据的操作和功能等信息。
3、面向对象编程的理解
类是抽象的,对象是具体的。把具有相同行为和属性的对象归纳为类,将类进行具体属性和行为实现就是对象。例如:小品演员就是一个类,赵本山就是一个对象。
Java中面向对象(OOP:Object Oriented Programming):
? 在面向对象的编程方式中,对象拥有多种特性,如手机有高度、宽度、厚度、颜色、重量等特性,这些特性被称为对象的属性。对象还有很多功能,如手机可以听音乐、打电话、发信息、看电影等工作功能,这些功能被称为对象的方法,实际上这些方法是一种函数。而对象又不是孤立的,是有父子关系的,如手机属于电子产品,电子产品属于物体等,这种父子关系称为对象的继承性。在编程中,把所有的问题看做对象,以人的思维方式解决。这种方式非常人性化,对象实际上就是一组数据的集合,并且数据都已经命名。这些数据根据就是对象的属性,可以被程序访问。对象还包括很多函数,这些函数被称为对象的方法,也可以被程序访问。不过在外部访问对象内的属性或方法,必须先引用对象,然后用点号访问对象的属性和方法
? 自顶向下顺序执行,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。程序流程在写程序时就已决定
4、对象的创建和使用
/*
* 对象如何创建,又如何使用
*
*/
package b对象的建立和使用;
class Student {
//属性:
//学号
int id;//成员变量,实例变量
//id是对象级别的,必须先有对象才能访问,不能使用类直接访问
//姓名
String name;
//性别
boolean sex;
//年龄
int age;
//住址
String addr;
//方法:
}
public class Test01 {
public static void main(String[] args){
//1.创建对象
//stu1是一个局部变量,这个局部变量stu1是Student类型,也就是一个引用类型
Student stu1 = new Student();//关键字new作用就是在JVM的堆(heap)内存中开辟一块Student类型的空间
//其空间中有对象,而stu1存储的是对象的内存地址,stu1称:引用
//通过“引用”间接访问堆中的对象
//一个类可以创建多个变量
//Student stu2 = new Student();
//2.使用对象
//访问成员变量(实例变量、非静态变量),必须使用"引用."
//name是成员变量,对象相关,必须现有对象才能访问,须使用"引用."
//ERROR :System.out.println(Student.name);
//读取过程
System.out.println("id="+stu1.id);//0
System.out.println("name="+stu1.name);//null
System.out.println("age="+stu1.age);//0
System.out.println("sex="+(stu1.sex?"男":"女"));//false
/*
* 关于系统默认值
* 基本数据类型
* byte short int long 0
* float double 0.0
* boolean false
* char \u0000
*
* 引用数据类型 null
*/
//赋值过程
stu1.id=5664;
stu1.name="ksjdkjs";
stu1.age=54516;//虽然程序编译通过,但不符合现实的业务逻辑
stu1.sex=true;
//读取过程
System.out.println("id="+stu1.id);//5664
System.out.println("name="+stu1.name);//ksjdkjs
System.out.println("age="+stu1.age);//54516
System.out.println("sex="+(stu1.sex?"男":"女"));//true
}
}