Java基础概念(面向对象的世界观以及对象和类)
- 面向对象的世界观
- 类和对象
一.面向对象的世界观概念:
-
世界是由各种各样的具有自己独特的运动规律和内部属性的对象组成不同的对象之间相互作用和通讯就形成了缤纷的世界.简单来说万事万物皆为对象 ,就好像人 猫 树 电脑 手机等都是对象。
-
优点:更符合人对事物认识的规律
二.类和对象
1. 类和对象的概念介绍:
概念:类用来封装数据 以及处理这些数据的方法 类就是一个拥有相同属性和方法的容器 例如:这个理论其中的数据就是类的属性(shape属性 和name属性)同时它还拥有处理这些数据的方法(getShape(),setShape(String shape),getName())。
***类是抽象的没有对象时具体的 对象可以很清晰看到它有哪些属性***类是我们设计出来的 ,而对象是客观存在的东西。
实践代码
package oop_01;
public class Cat {
/**
* 猫的名字
*/
public String name;
/**
* 猫的体型
*/
public String shape;
/**
* 构造器
*/
public Cat() {
}
/**
* 构造器
*
* @param name
* 猫的名字
*/
public Cat(String name) {
this.name = name;
}
/**
* 构造器赋值
*
* @param name
* 姓名
* @param shape
* 体型
*/
public Cat(String name, String shape) {
this.name = name;
this.shape = shape;
}
/**
* 猫抓老鼠的方法
*
* @param mouse
*/
public void catchMouse(Mouse mouse) {
System.out.println(this.name + "猫抓老鼠tom and jerry" + mouse.name);
}
/**
* 猫吃老鼠的方法
*/
public void eatMouse() {
System.out.println(this.name + "猫会吃老鼠");
}
}
建模:对象–(抽象abstract) -->类 (抽取对象的属性的过程)
简单的来说 建模就是创建类的过程,而这个类将作为模板一样存在来创建实例化之后的对象,如上述代码可见 我们创建了一个Cat类,我们获取猫的共同特点和共同行为以及猫抓老鼠的方法,实际上猫有很多其他的属性和方法 但是我们只需要取自己需要的就可以
实例化:类–(创建) -->对象((Dog g= new Dog();)g就是一个对象)
如下代码所示,我们new 一个一个对象就是在实例化对象,我们使用类来创建对象的过程就是实例化
public class CatText {
public static void main(String[] args) {
Cat cata=new Cat();
cata.name="安生";
cata.shape="小蓝猫";
Cat catb=new Cat();
Cat catc=new Cat("七月");
Cat catd=new Cat("安然", "小蓝猫");
Cat cate=new Cat("小樱", "小猫咪");
System.out.println(cata.name+"是"+cata.shape);
}
}
试一下运行结果
类变量和实例变量
类变量:有static修饰的变量成员变量 特点:可以通过类进行访问 例子:Dog.XXX访问访问
实例变量:没有static修饰符的变量或成员变量 特点:必须通过实例对象访问``
public class Mouse {
// 实例变量
public String drugResistance;
// 实例变量
/**
* 老鼠的名字
*/
public String name;
// 类变量
public static Integer ID = 123123;
public void makeHole() {
System.out.println("老鼠" + this.name + "正在打洞");
}
}
public class MouseText {
public static void main(String[] args) {
// 可以直接使用类名获取属性
Integer mouseID = Mouse.ID;
// 必须实例化对象获取属性
Mouse mouse = new Mouse();
String mouseName = mouse.name;
String mouDrugResistance = mouse.drugResistance;
}
}
类中的static块:在类加载时只运行且整个生命周期只被执行一次一般可用于资源初始化
public class Mouse {
// 实例变量
public String drugResistance;
// 实例变量
/**
* 老鼠的名字
*/
public String name;
// 类变量
public static Integer ID = 123123;
public Mouse() {
}
/**
* static加载块
*/
static {
System.out.println("mouse模型被加载中....");
}
public void makeHole() {
System.out.println("老鼠" + this.name + "正在打洞");
}
}
java加载运行机制介绍
修饰符
public:公开的,在任何类,包中都可以调用
abstract:抽象类 不能实例化 用来继承
final:最后的类 不能继承 不能有子类