java15:面向对象

类             对象

class         object(按照 英文就是东西,但是专家说是对象 so 我们就学对象)

类 class 就是 类型

因为 对象  object  ==》 东西 啥都是东西 ==> 啥都是对象 《== 专家的说法  一切皆对象

是结构化数据

类是对象的分类

类是对象的数据结构定义==》 对象有什么数据由类定义

创建对象,需要有类型, 用类型创建对象 类是对象的结构模板

对象创建后,成员变量可以按照默认的方式初始化

数值类型     0

int        0

byte       0

short       0

long       0L

float      0.0f

double      0

boolean类型    false

char类型     \u0000

引用类型     null

引用类型

8种基本类型之外的 用类名(接口\数组)声明的变量 就是引用类型变量

引用类型变量的值中存储的是某个对象在内存中的地址信息,应用的功能在于访问对象,

方法:

在类中定义

代表对象的行为 就是功能

方法实现是利用算法操作对象的数据实现

使用对象调用方法

this 关键字

this 在方法执行期间代表调用方法的“这个”对象。是动态绑定到当前对象,方法在方法区中通过this 识别不通对象的调用。

代表当前对象本身是方法的隐含参数,接受对象引用

本质

堆栈 里面是数据

方法区是算法

package day15;

public class Demo01 {

	public static void main(String[] args) {
		dog wangcai = new dog();
		wangcai.age=3;
		wangcai.name="wangcai";
		wangcai.sex=‘m‘;
		wangcai.color=0x505050;
		System.out.println(wangcai.age);
		System.out.println(wangcai.name);
		System.out.println(wangcai.sex);
		System.out.println(wangcai.color);
		wangcai.eat();
	}

}
class dog{
	String name; //实例变量 : 每个对象实例拥有一个name
	int age;
	char sex;
	int color;
	public void eat(){
		System.out.println("吃");
	}
}
package day15;

public class Demo01 {

	public static void main(String[] args) {
		cell c1 = new cell();
		c1.row = 1;
		c1.col = 5;
		c1.color = 0x505050;
		cell c2 = new cell();
		c2.row = 1;
		c2.col = 6;
		c2.color = 0x505050;
		System.out.println(c1.row);
		c1.drop();
		c2.drop();
		System.out.println(c1.row);
		System.out.println(c2.row);
	}

}

class cell {
	int row;
	int col;
	int color;

	public void drop() {//下移
		row++;
	}

	public void leftShift() {//左移
		col--;
	}

	public void rightShift() {//右移
		col++;
	}
}

在同一个包中不能声明同名的类

构造器(使得创建对象方便简洁)

构造方法:创建和初始化对象的方法(初始化属性)

构造方法在类中声明

构造方法的方法名与类名一致

构造方法不能声明返回值

使用new运算调用构造器,创建对象

java根据构造器参数识别 不通的构造器

package day15;

public class Demo01 {

	public static void main(String[] args) {

		dog xiaowangcai = new dog("xiaowangcai", 5, ‘m‘, 0x404040);// 对比wangcai的声明xiaowangcai的声明更便捷
		//dog xiaowangcai2 = new dog("xiaowangcai2", 4, ‘w‘, 0x606060);// 创建对象很便捷啦。
		xiaowangcai.eat();
		//xiaowangcai2.eat();
	}

}

class dog {
	String name; // 实例变量 : 每个对象实例拥有一个name
	int age;
	char sex;
	int color;

	public dog(String name, int age, char sex, int color) {// 构造器(构造方法):为更便捷
		System.out.println(this.name);
		this.name = name;// 方法中的参数是局部变量
		System.out.println(this.age);
		this.age = age;// this.age是实例变量
		System.out.println(this.sex);
		this.sex = sex;// 为了区别 就使用this. 区别方法参数和实例变量
		System.out.println(this.color);
		this.color = color;
	}

	public void eat() {// 方法
		System.out.println("吃");
	}
}

java 构造方法和方法

构造方法(构造器、构造函数) 对比 方法

构造方法:方法名一定与类名一样,不能定义返回值 试用new运算调用构造fangfa

方法:方法名一般不与类型一样,一定定义返回值 没有返回值的使用void的定义 试用引用调用方法

构造方法:用于创建对象初始化属性:创建个小旺财

方法:是对象的行为功能:狗吃东西

类型用名词

方法用动词

名词 + 动词

重载:

名字一样功能不同

运算符:+ 数值相加 连接字符串

方法重载:方法名一样,参数不同

构造器重载:构造方法名一样,参数不同

package day15;

public class Demo01 {

	public static void main(String[] args) {

		dog xiaowangcai = new dog("xiaowangcai", 5);// 对比wangcai的声明xiaowangcai的声明更便捷
		dog xiaowangcai2 = new dog("xiaowangcai2", 4, ‘w‘, 0x606060);// 创建对象很便捷啦。
		xiaowangcai.eat();// 调用重载的方法
		xiaowangcai2.eat("骨头");// 调用重载的方法
	}

}

class dog {
	String name; // 实例变量 : 每个对象实例拥有一个name
	int age; // 属性
	char sex;
	int color;

	public dog(String name, int age) {// 构造器(构造方法):为更便捷
		this.name = name;// 方法中的参数是局部变量
		this.age = age;// this.age是实例变量
		System.out.println(this.name);
		System.out.println(this.age);
	}

	// 构造器重载 参数不同 没有 sex 和color
	public dog(String name, int age, char sex, int color) {// 构造器(构造方法):为更便捷
		this.name = name;// 方法中的参数是局部变量
		this.age = age;// this.age是实例变量
		this.sex = sex;// 为了区别 就使用this. 区别方法参数和实例变量
		this.color = color;
		System.out.println(this.name);
		System.out.println(this.age);
		System.out.println(this.sex);
		System.out.println(this.color);

	}

	public void eat() {// 方法
		System.out.println("吃");
	}

	// 重载的方法,方法名一样,参数不同
	// 调用有参数的就执行下面的
	public void eat(String str) {// 方法
		System.out.println("吃" + str);
	}
}

null

空指针异常:引用变量的值是null,没用引用任何对象

在null引用上调用了方法 属性会出现空指针异常

在访问方法 属性之前 对引用变量赋值,使变量引用对象 ==》解决

有变量没有对象

访问属性

调用方法

最后:对象就是东西!!!

时间: 2024-08-03 06:03:18

java15:面向对象的相关文章

python学习 面向对象封装

from collectoins import namedtuplePoint=namedtuple('point',['x','y'])t1=Point(1,2)print(t1.x)print(t1.y)没有方法的类属性不会发生变化    定义简单 不能改变面向对象封装私有属性!!!私有方法!!!用装饰器描述的几个方法@property !!!@classmethod!!@staticmethod! 封装:class Teacher:     def __init__(self,name,p

python—面向对象的封装

封装 私有属性 class Teacher: __identifier = 'Teacher' #私有静态属性 def __init__(self,name,pwd) self.name = name self.__pwd = pwd #私有属性 内部使用,外部不能使用 def pwd(self): print(self.__pwd) alex = Teacher('alex','3714') alex.pwd() class Teacher: __identifier = 'Teacher'

python学习_day26_面向对象之封装

1.私有属性 (1)动态属性 在python中用双下划线开头的方式将属性隐藏起来.类中所有双下划线开头的名称,如__x都会自动变形成:_类名__x的形式.这种自动变形的特点是: a.类中定义的__x只能在内部使用,如self.__x,引用的就是变形的结果.b.这种变形其实正是针对外部的变形,在外部是无法通过__x这个名字访问到的.c.在子类定义的__x不会覆盖在父类定义的__x,因为子类中变形成了:_子类名__x,而父类中变形成了:_父类名__x,即双下滑线开头的属性在继承给子类时,子类是无法覆

python面向对象知识点疏理

面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例.class 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据. 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖,也称为方法的重写. 实例变量:定义在方法中的变量,只作用于当前实例的类. 继承:即一个派生类(de

php学习笔记 面向对象中[接口]与[多态性]的应用

代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽象方法(不

php面向对象

面向对象 什么是面向对象? 面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程 序是由单个能够起到子程序作用的单元或对象组合而成,OOP达到了软件工程的三个目标:重用性.灵活性和扩展性.为了实现整体 运算,每个对象都能够接收信息.处理数据和向其它对象发送信息. 什么是面向对象编程呢? 把每个独立的功能模块抽象成类形成 对象,由多个对象组成这个系统,这些对象之间都能够接收信息.处理数据和向其它对象

面向对象注意事项

在面向对象中,有实例变量和类变量,实例变量为类对象的实例成员,而类变量不仅类可以直接调用,而且类的对象也可以调用.类对象可以对实例变量进行添加.修改.删除操作等... 下面就用个示例来做参考: #!/usr/bin/env python # -*- coding:utf-8 -*- class PersonInfo(object): commity_data = 123 def __init__(self,name,age): self.name = name self.age = age de

java面向对象:面向对象的思想和概述

1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一种更符合我们思想习惯的思想 B:可以将复杂的事情简单化 C:将我们从执行者变成了指挥者 开发,设计,特征 面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 其实就是在管理和维护对象之间的关系. 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism

6 面向对象之类和对象

1 面向对象和面向过程的区别 两者都是软件开发思想,先有面向过程,后有面向对象.在大型项目中,针对面向过程的不足推出了面向对象开发思想. 区别: 1)编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类.属性及其方法,然后通过实例化类.执行方法来完成功能. 2)封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能. 3)面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显. 2 类和对象 对象:客观存在的实体(一个具体的