7.封装,static,方法重载

一.访问修饰符
1.public:公共的,所有在该项目中都可见
2.protected:受保护的,同包,以及子类不同包可见
3.默认:就是不写修饰符。同包
4.private:私有,只在同类中

二.封装
1.定义:将信息和实现的细节封装到类中,对外只提供方法的访问
2.作用:隐藏实现细节,可以简化工作流程。隐藏信息,可以防止数据被随意修改
3.封装步骤:
a。将类中的属性访问修饰符改为私有的
b。写一对公共的方法来操作私有的属性:set/get方法
c。在set或者get方法中加入业务限制来修改属性

三.static关键字
1.定义:静态关键字,可以修饰属性,方法和代码块。
2.作用:是在类被加载时,被静态修饰的东西都被加载就绪。
静态属性和静态方法可以通过类名直接访问
3.注意事项:静态方法不能访问外部的非静态成员,静态方法中不能使用this关键字
4.使用场景:常用的工具类方法可以写成静态。

四.方法的重载
1.定义:是在同一个类中,出现同名方法,但参数列表必须不同(个数,类型,顺序)
2.特点:
必须在同一个类中
参数列表必须不同
与访问修饰符和返回值无关

五.例子

/*
 * 1.编写一个人类,封装他的性别属性,要求性别只能赋值为男或女,其他不接受。
编写测试类,创建该对象给他性别属性赋值,打印输出其性别
 */
package com.class1103;

import java.util.Scanner;

public class Class01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc=new Scanner(System.in);
		Man m=new Man();
		System.out.println("请输入性别");
		m.setSex(sc.next());
		System.out.println("性别是"+m.getSex());

		System.out.println("请输入年龄");
		m.setAge(sc.nextInt());
		System.out.println("年龄是"+m.getAge());
	}

}

class Man{
	private String sex;
	private int age;
	public void setSex(String sex)
	{
		if(sex.equals("男")||sex.equals("女"))
		{
			this.sex=sex;
		}else{
			System.out.println("是人妖");
		}

	}
	public String getSex()
	{
		return sex;
	}
	public void setAge(int age)
	{
		if(age>=1&&age<=150)
		{
			this.age=age;
		}else{
			System.out.println("是千年老人妖");
		}
	}
	public int getAge()
	{
		return age;
	}
}
/*
 * 对象数组
 */
package com.class1103;

public class Class02 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Student[] stu=new Student[20];
		stu[0]=new Student("关羽",58,"男");
		stu[1]=new Student("张飞",55,"男");
		stu[2]=new Student("赵云",50,"男");
		stu[3]=new Student("黄忠",67,"男");
		stu[4]=new Student("马超",47,"男");
		for(int i=0;i<5;i++)
		{
			System.out.print(stu[i].name+" ");
			System.out.print(stu[i].age+" ");
			System.out.print(stu[i].sex+" ");
			System.out.println();
		}
	}

}

class Student{
	String name;
	int age;
	String sex;

	public Student(String name,int age,String sex)
	{
		this.name=name;
		this.age=age;
		this.sex=sex;
	}
}
package com.demo1103;
/**
 * 实现信息的封装
 * @author allen
 *
 */
public class Demo1 {
	private double balance;

	public void setBalance(double balance){
		if(balance<0){
			System.out.println("骗子死开");
			return;
		}else{
			System.out.println("你就是我亲爹啊");
			this.balance += balance;
		}
	}

	public double getBalance(){
		return balance;
	}

	public static void main(String[] args) {
		Demo1 d = new Demo1();
		d.setBalance(-1000);
		System.out.println("您当前的余额是:"+d.getBalance());
	}
}

  

package com.demo1103;

import java.util.Arrays;
/**
 * 静态关键字和方法重载案例
 *
 */
public class Test {
	String name;
	static int age;

	static{
		System.out.println("我是静态块");
	}

	public void test(int a,String b){
		System.out.println("你好");
	}
	//重载
	private int test(){
		return 1;
	}

	public static void hello(){
		age = 1;
		System.out.println("hello");
	}

	public static void main(String[] args) {
		int a = 1;
		a = 1;
		Test.hello();
	}
}

  

  

  

原文地址:https://www.cnblogs.com/wlxslsb/p/10353998.html

时间: 2024-08-01 22:25:05

7.封装,static,方法重载的相关文章

封装 ,this,构造方法,方法重载

.什么是封装?封装就是将属性私有化,提供公有的方法访问私有属性. 做法就是:修改属性的可见性来限制对属性的访问,并为每个属性创建一对取值(getter)方法和赋值(setter)方法,用于对这些属性的访问. 如:private String name; public String getName(){ ??????????????????? return; ?????????? } ? ????? public void setName(String name){ ???????????????

Java ——对象 类 方法重载 构造方法 封装

本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 对象:根据类创建出来的具体的实物 方法重载 在同一个类中提供多个同名不同参的方法. 重载要求:方法名称相同,但参数的   [ 类型不同     or   参数的个数不同     or     参数的顺序不同] public class Demo { public void fun1() { } p

四.OC基础--1.文档安装和方法重载,2.self和super&amp;static,3.继承和派生,4.实例变量修饰符 ,5.私有变量&amp;私有方法,6.description方法

四.OC基础--1.文档安装和方法重载, 1. 在线安装 xcode-> 系统偏好设置->DownLoads->Doucument->下载 2. 离线安装 百度xcode文档 3. 方法重载: 是指在一个类中定义多个同名的方法 在OC中没有重载 2.self和super&static, self和super: 1. self理解: 谁调用当前方法, self就代表谁. 比如: 在对象方法中,self代表的是对象, 因为只有对象才可以调用对象方法 在类方法中, self代表的

静态常量static和方法重载

静态常量思维导图 有时在处理问题时,会需要两个类在同一个内存区域共享一个数据.这时没有必要在两个类中同时创建同一个常量,因为这样系统会将这两个不在同一个类中定义的常量分配到不同的内存空间中.可以将这个常量设置为静态的. 被声明为static的变量.常量和方法被称为静态成员.静态成员是属于类所有的,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员. 语法格式: 类名.静态类成员 注意: 虽然静态成员也可以使用“对象.静态成员”的形式进行调用,但这样的形式通常不被鼓励使用,因为这

【面向对象】方法重载(转载)

[面向对象]方法重载 方法重载 1)方法重载:在同一个类的内部,方法名相同,参数不同 参数不同:指参数的类型.顺序(类型).个数不同 跟参数的名字无关 案例: public class Demo10 { //设计一个计算器类,实现加法的操作,通过方法重载的方式,让类实现不同数据(int,double)的加法运算 public static void main(String[] args){ AddUtil addUtil = new AddUtil(); int sum1 = addUtil.a

方法重写和方法重载

重写和重载虽然都有一个共同点是发生在方法之间,但是两者之间没有任何的关系! 方法重载:是指一个类中有多个方法,这些方法的名字一样,但是形参不一样 方法重写:发生在子类和父类之间,当子类继承了父类之后,子类就拥有了父类中定义的方法,当然除了构造器没有继承,子类可以去调用父类的方法,也可以重写,在子类中重写父类的方法,保证方法名一样,形参也要一样吧,这样子类再访问这个方法时就会默认使用这个在子类中被重写的方法,而不是父类中那个被覆盖的方法. 当然,我们如果想在子类中使用父类中被覆盖的方法,我们可以使

方法重载

方法重载: * 概述: 允许在同一个类中,存在一个以上的同名方法,只要它们的参数列表不同 , 和返回值类型无关 简单的说: 在同一个类中,方法名相同,参数列表不同.与返回值类型无关. 参数列表不同: 参数的个数不同 参数的类型不同 public static void main(String[] args) { boolean b1 = isEquals(10, 10); System.out.println(b1); boolean b2 = isEquals(10.5, 10.5); Sys

1.28 Java基础总结 ①方法重载②构造方法

1.28 Java基础总结 ①方法重载②构造方法 一.方法的重载在同一个类中,方法名相同,形参列表不同访问修饰符.返回类型和是否重载无关:按顺序对应的形参列表类型不同即可 二.构造器在类创建一个实例时被调用,构造方法只能用new关键字调用目的:初始化实例,初始化类属性(0,0.0,null,false)无返回值,和类名一致,用来构造对象作用:为对象分配内存, 创建并初始化成员变量(通过类创建,所以可以在static方法中调用构造方法) 返回引用,引用.属性:引用.方法(所以无返回值) 三.构造方

方法重写与方法重载

继承和多态都是面向对象程序设计的特点.使用继承可以在一个父类的基础上再创建一个子类,这个子类不但拥有父类已有的属性和方法,还可以创建属于自己的属性和方法.由于子类和父类之间的关系,从而引出了方法重写和方法重载的问题.方法重写及方法重载在继承和多态性方面的应用中会存在很多问题,这些概念很容易混淆,掌握重写和重载的区别对学会使用多态的方式编写程序.提高程序的可维护性奠定了基础. 一.方法重写(0veriding)如何定义重写:在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类