面向对象基础——类与对象的定义

面向对象的概念

封装性:对外部不可见。可以保护程序中的某些内容。

继承性:扩展功能的。

类与对象的关系:

定义类和对象的方法?

类图的画法:Person类图

分为三层:

第一层表示类的名称,类的名称与之前一样要求开头首字母大写。

第二层表示属性的定义,按照" 访问权限 属性名称:属性类型 " 的格式定义;

第三层表示类中方法的定义,按照"  访问权限 方法名称():方法返回值类型  " 的格式定义。如下图所示:

类与对象的进一步研究

掌握Java中的内存划分,java引用传递 以及垃圾的产生分析。

重点:对象是保存在内存之中的(指针/引用),属性是保存在堆内存之中;而方法是保存在全局代码区之中的,此区中的内容是所有的对象共享的。  注意:在使用对象的时候,对象必须被实例化后才可以使用(并不是单单指的是直接通过new关键字进行实现,只要有其堆内存的空间指向,则就表示实例化成功)。如果不进行实例化就会出现空指针异常。

此时出现了一个空指向异常。在引用操作中,如果一个对象没有堆内存的引用,而调用了类中的属性或方法,就会出现此问题。所谓的引用数据类型时间上传递的是堆内存的使用权,可以同时为一个堆内存空间定义多个栈内存的引用操作。

class Person{
	String name ;		// 声明姓名属性
	int age ;			// 声明年龄属性
	public void tell(){	// 取得信息
		System.out.println("姓名:" + name + ",年龄:" + age) ;
	}
};
public class ClassDemo05{
	public static void main(String args[]){
		Person per1 = null ;		// 声明per1对象
		Person per2 = null ;		// 声明per2对象
		per1 = new Person() ;		// 只实例化per1一个对象
		per2 = per1 ;				// 把per1的堆内存空间使用权给per2
		per1.name = "张三" ;		// 设置per1中的name属性内容
		per1.age = 30 ;				// 设置per1中的age属性内容
		// 设置per2对象的内容,实际上就是设置per1对象的内容
		per2.age = 33 ;				// 设置per2中的age属性内容
		System.out.print("per1对象中的内容 --> ") ;
		per1.tell() ;				// 调用类中的方法
		System.out.print("per2对象中的内容 --> ") ;
		per2.tell() ;				// 调用类中的方法
	}
};
class Person{
	String name ;		// 声明姓名属性
	int age ;			// 声明年龄属性
	public void tell(){	// 取得信息
		System.out.println("姓名:" + name + ",年龄:" + age) ;
	}
};
public class ClassDemo06{
	public static void main(String args[]){
		Person per1 = null ;		// 声明per1对象
		Person per2 = null ;		// 声明per2对象
		per1 = new Person() ;		// 实例化per1对象
		per2 = new Person() ;		// 实例化per2对象

		per1.name = "张三" ;		// 设置per1中的name属性内容
		per1.age = 30 ;				// 设置per1中的age属性内容
		per2.name = "李四" ;
		per2.age = 33 ;				// 设置per2中的age属性内容

		per2 = per1 ;				// 把per1的堆内存空间使用权给per2
		System.out.print("per1对象中的内容 --> ") ;
		per1.tell() ;				// 调用类中的方法
		System.out.print("per2对象中的内容 --> ") ;
		per2.tell() ;				// 调用类中的方法
	}
};

以为per2改变了指向,所以其原本指向的内存空间没有任何栈内存的引用,则这样的内存就被称为垃圾,等待垃圾回收机制进行回收。 GC:垃圾回收机制的简称。

封装性:

封装就是保护内容。

保证某些属性或方法可以不被外部看见。

封装的实现:

class Person{
	private String name ;			// 声明姓名属性
	private int age ;				// 声明年龄属性
	public void setName(String n){	// 设置姓名
		name = n ;
	}
	public void setAge(int a){		// 设置年龄
		if(a>=0&&a<=150){			// 加入验证
			age = a ;
		}
	}
	public String getName(){		// 取得姓名
		return name ;
	}
	public int getAge(){			// 取得年龄
		return age ;
	}
	public void tell(){
		System.out.println("姓名:" + name + ",年龄:" + age) ;
	}
};
public class EncDemo04{
	public static void main(String arsgh[]){
		Person per = new Person() ;	// 声明并实例化对象
		per.setName("张三") ;		// 调用setter设置姓名
		per.setAge(-30) ;			// 调用setter设置年龄
		per.tell() ;				// 输出信息
	}
};

Setter方法中加入验证,getter方法只需要简单的取回即可。

时间: 2024-10-17 05:47:25

面向对象基础——类与对象的定义的相关文章

C#面向对象基础--类与对象

1.类与对象 类是面向对象编程的基本单元:类造出来的变量叫对象. 一个类包含俩种成员:字段与方法. 字段即变量,方法即函数. 面向对象思想:教给我们如何合理的运用类的规则去编写代码. 2.类的字段 字段代表了类中的数据.在变量之前可以加上public.private和protected表示字段的访问权限. 3.类的方法 (1).函数的概念 表达式: 返回值类型  方法名(参数列表) { 语句1: 语句2: ..... return 表达式: } 函数需要向外界返回一个值,由return语句实现.

面向对象基础——类和对象

Java是面向对象的编程语言,类和对象是面向对象编程的重要概念.从今日起陆续把过去落下的知识一点点补回来,且把这当作一种笔记吧. 1. 类的声明.属性的使用.对象的声明和使用(无参构造方法): 1 class Person 2 { 3 String name;//声明属性,即成员变量,Field又称为字段或域 4 int age; 5 public void talk()//公有方法method 6 { 7 System.out.println("我是"+name+",今年&

python基础(类、对象、包)完整的总结

python基础(类和对象.包)类和对象对象是看的见摸的着的类是模板对象需要类才能创建出来类的构成(三个部分)类的名称:类名类的属性:一组数据类的方法:允许进行操作的方法(行为)class 类名():def添加方法class Cat():def run(self):print("cat is running")xiaobai = Cat()xiaobai.run()xiaobai.name = "小白"xiaobai.age = 40类的属性属性就是变量一个类可以创

第31节:Java基础-类与对象

前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载和构造方法的重载 方法的重载 在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载. class Demo{ // one void dashu(String name){ System.out.println(name); } // two void

Python 2019/7/24 面向对象概念 类和对象 对象初始化__init__ 绑定与非绑定

面向对象 (Object Oriented Programming,简称OOP) 1.什么是面向对象:面向对象编程是一种思想,它指导程序员如何编写出更好的程序.它的核心是对象,此时程序员从操作者变成了指挥者. 2.为什么使用面向对象编程:当今时代背景下,通常应用程序对扩展性和维护性要求都是非常高的,为什么?想想qq,微信,是不是不断的在添加新功能?,也就是说一款应用程序诞生后,都需要不断的更新维护. 3.面向对象优缺点: 优点:拓展性  灵活性 重用性     缺点: 程序的复杂度提高了   无

类和对象的定义

类和对象的定义 1.属性--对象具有的各种特征 2.每个对象的每个属性都拥有特定值 ① 例如:张浩和李明的年龄.姓名不一样 3.方法--对象执行的操作 4.对象:用来描述客观事物的一个实体,由一组属性和方法构成 5.对象同时具有属性和方法两种特性 对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相成,不能分割 6.类定义了对象将会拥有的特征(属性)和行为(方法) 7.类是对象的类型,对象是类的实例 原文地址:https://www.cnblogs.com/chenhuanghuib

ios开发之OC基础-类和对象

本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录知识点关键字,把把握重点,然后再将零散的知识点整理出来.这样的学习方法会带来更多的收获,同时要多做练习,按照思路,默写.改写代码.在这里,感谢欧阳坚老师,学习你的课程使我走上了ios的开发之路. 一定要明确一个要从事的方向,要不然就会感到迷茫.学习ios开发,并且从事ios开发这个行业,这就是我的选择.看到我的博客系列文章,其中大

201671010142 java类与对象的定义及使用

通过这章学习,了解到面向对象程序设计.面向对象的程序设计是有对象组成的,每个对象对用户公开的特定功能部分和隐藏的实现部分.有类构造对象的过程称为创建类的实例.实现封装的关键在于绝对不能让类中的方法直接地访问其他类的实例域.一个对象变量并没有实际包含一个对象,而仅仅引用一个对象.用户自定义类:这些类没有main方法,却有自己的实力域和实例方法.构造器:可以定义对象的初始状态.构造器与类名同名,每个类可以有一个以上的构造器,构造器可以有0个,1个或多个参数,构造器没有返回值,构造器总是伴随着new操

Day16:面向对象编程——类和对象

一.面向对象的程序设计 在此之前用到的事面向过程的程序设计,它的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比设计好一条流水线,考虑周全什么时候处理什么东西. 优点:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的程序设计的核心是对象.程