JAVA学习第七课(封装及其思想)

封装(Encaplusation):

指:隐藏对象的属性和实现细节,只对外提供公共访问方式

优点:

1。将变化隔离

2.便于使用

3.提高重要性

4.提高安全性

封装原则:

1.将不需要对外提供的的内容隐藏起来

2.将属性隐藏,进对外提供其公共访问方式

事例代码:

class man
{
	private int age;//年龄
	private String sex;//性别
	public void change(int a,String b)
	{
		if(a < 0 || a>130)
		{
			System.out.println("错误数据");
			return ;
		}
		age = a;
		sex = b;
		fun();
	}

	void fun()
		{
			System.out.println("age = "+age+",sex = "+sex);
		}

}

public class Main
{
	public static void main (String[] args)
	{
		man jo = new man();
		//jo.age = -20;这样就有不安全性,所以用private,将成员属性私有,外界就无法访问
		jo.change(20,"man");
	}
}

在实际开发过程中,已经形成了一种规范

书写规范:set(存放数据) 和 get(得到数据)

class man
{
	private int age;//年龄
	private String sex;//性别
	public void setage(int a,String b)//存放
	{
		if(a < 0 || a>130)
		{
			System.out.println("错误数据");
			return ;
		}
		age = a;
		sex = b;
	}
	public int getage()  //获取
	{
		return age;
	}
	void fun()
		{
			System.out.println("age = "+age+",sex = "+sex);
		}

}

public class Main
{
	public static void main (String[] args)
	{
		man jo = new man();
		jo.setage(20, "fa");
		int ag = jo.getage();
		System.out.println(ag);
	}
}

上述代码就是简单的封装性的体现,最明显的体现就是安全性,注意一点就是属性一般都是隐藏的。

封装的思想:

例子:各种电器就是一个很好的封装体,电器的开关,就是对外提供的访问方式,至于内部怎么访问,就不需要了解了,对用户是隐藏的。

当然,对象也是如此。

private 私有,是一个权限修饰符,权限最小,只能修饰成员,不能修饰局部

私有内容只在本类中有效

public 共有,权限最大

注意:private私有仅仅是封装的一种体现,私有是封装,封装并不代表私有

类、框架本身就是一个封装体

小练习:

封装完成,10个数的插入排序功能。

代码:

import java.util.Scanner;

import javax.naming.ldap.SortControl;

class jo
{
	public void set(int a[])//公共访问方式
	{
		intsrtsort(a);
	}
	private static void intsrtsort(int a[])//插入排序
	{
		int len = a.length;

		for(int i = 1;i<len;i++)
		{
			if(a[i] <a[i-1])
			{
				int t = a[i],j;
				a[i] = a[i-1];
				for(j = i-2;j>=0 && a[j] > t;j--)
				{
					a[j+1] = a[j];
					swap(a, j+1, j);
				}
				a[j+1] = t;
			}

		}

	}
	private static void swap(int a[],int x,int y)//改变数值
	{
		a[x] = a[y];
	}
}
public class Main
{
	public static void main (String[] args)
	{
		int a[] = new int[10];
		Scanner cin = new Scanner(System.in);
		System.out.println("输入10个数,实现插入排序:");
		for(int i = 0;i<10;i++)
		{
			a[i] = cin.nextInt();
		}
		jo haha = new jo();//定义对象
		haha.set(a);//存放数据
		System.out.println("排序结果如下:");
		show(a);//显示结果
		cin.close();
	}
	 static void show(int a[])
	{
		for(int i = 0;i < 10 ; i++)
		{
			System.out.print(a[i]+" ");
		}
	}

}
时间: 2024-10-08 23:03:55

JAVA学习第七课(封装及其思想)的相关文章

JAVA学习第七天

1.能够理解面向对象的思想 面向对象是基于面向过程的编程思想,强调的是对象,由对象去调用功能.它是一种更符合人类习惯的编程思想,可以将复杂的事情简单化,将我们的角色从执行者变成了指挥者. 2.能够明确类与对象关系 类是客观世界中相关事物的基本特征抽象.对象是该类事物的具体体现.比如手机是一个类,而iphone7就是一个对象. 3.定义学生类 public class Student{ //成员变量 String name; int age; //成员方法 public void tell(){

JAVA学习第六课(面向对象)

面向对象首先要先了解什么是面向对象? 面向对象:就是不断的和对象打交道. 早期解决问题,都是面向过程(简单来说就是一步一步怎么做,面对的是过程,即强调动作),如C语言,利用函数,进行函数的调用. 思想: 面向对象:强调的是对象,对象即指实体.c++,java,c# 例子:把大象装进冰箱 面向过程实现:1.打开冰箱  2.存储大象  3.关上冰箱 面向对象实现:(找到实体,实体封装着这些功能,也就是找到冰箱,冰箱具备打开.存储.关闭功能) 1.冰箱打开  2.冰箱存储   3.冰箱关闭 面向对象的

JAVA学习第二十课(异常的应用和注意事项(三))

十.异常的应用 import java.util.Random; import javax.rmi.CORBA.Stub; /* *老师用电脑上课 *用面向对象思考问题 *问题设计两个对象 *老师,电脑 * *可能发生的问题: *电脑蓝屏.电脑冒烟 */ class Lan extends Exception//蓝屏 { Lan(String problem) { super(problem); } } class Fir extends Exception//冒烟 { Fir(String p

JAVA学习第十一课(继承)

继承:(extends) 很多类,但是有一些成员,都是重复的,所以为提供复用性,把重复的代码抽取出来,就应用了继承 1.提高了代码的复用性 2.让类与类之间产生了关系,继承给多态提供了前提,没继承就没多态 class MAN { String name; int age; } class student extends MAN //MAN是student的基类,student是MAN的子类 { void study() { System.out.println(name+"正在学习"+

Java学习(七)标准标签库JSTL

一.了解JSTL 1.什么是JSTL? JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的.JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x.在JSP 2.0中也是作为标准支持的. JSTL 1.0 发布于 2002 年 6 月,由四个定制标记库(core.format.xml 和 sql)和一对通用标记库验证器(ScriptFreeTLV

java学习之jdbc的封装

jdbc是连接数据库必不可少的工具,但每次连接都要重新写一遍太麻烦了,也不利于代码的可读性,这里做一个工具类进行封装. 1 package com.gh; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 import java.uti

JAVA学习第七天——面向对象

将学生和工人的共性描述抽取出来.单独进行描述. 只要学生和工人与单独描述的这个类有关系,就可以了. 继承: 1.提高代码的复用性 2.让类与类之间产生关系.有了关系才有了多态的特性. 注意:千万不要为了获取其他类的功能,简化代码而继承: 必须是类与类之间有所属关系才可以继承,所属关系 is a. java中只支持单继承不支持多继承:因为多继承容易带来安全隐患 因为当功能内容不同时,子类对象不确定要运行哪一个. 但是java保留这种机制.并且用另一种体现形式来完成,多实现 java支持多层继承.也

Java学习笔记七(文件夹操作)

1.介绍 上一篇博客介绍的是java中常用的操作文件的方式,本篇博客着重讲解一下,在Java中是如何来操作文件夹的.主要是利用的是Java.IO包下面的File类,本篇博客着重讲解一下该类的构造函数和常用的方法. 2.File类的字段摘要 File类为我们提供了与系统有关的路径分割符,字段分别如下 static String pathSeparator:返回值为字符串,结果表示分号; static char pathSeparatorChar:返回值为char类型,结果表示分号 static c

Java学习笔记七(目录操作)

1.介绍 上一篇博客介绍的是java中经常使用的操作文件的方式,本篇博客着重解说一下,在Java中是怎样来操作目录的.主要是利用的是Java.IO包以下的File类,本篇博客着重解说一下该类的构造函数和经常使用的方法. 2.File类的字段摘要 File类为我们提供了与系统有关的路径切割符,字段分别例如以下 static String pathSeparator:返回值为字符串,结果表示分号; static char pathSeparatorChar:返回值为char类型,结果表示分号 sta