java第七天

一、方法的定义

1.方法的名称
2.方法返回的值的数据类型
3.参数列表
4.方法的主体

二、通常定义类的方法需要以下两个步骤来完成。

⑴定义方法名,参数以及返回值类型。
⑵编写方法体。
另外,在定义类的方法时要注意以下几点。
⑴由一对花括号括起来的语句是方法的主体,它包含一段程序代码,执行时完成一定的功能。
⑵方法名主要是在调用此方法是使用其命名方法应遵守标识符命名的规则。另外,通常方法名是一个动词,如果有两个以上单词组成,第一个单词的首字母小写,其后单词首字母大写。
⑶方法就像黑匣子完成一个功能,并且在执行后可能返回一个结果在方法的主体。那如果方法具有返回类型,则必须使用关键字return返回数据及方法的返回值有以下两种情况。
①如果方法具有返回值,那么方法中必须使用关键字return返回该值,返回类型为该返回值的类型。
②如果方法没有返回值,则方法的返回值的数据类型为void。 因此,在编写程序时一定要注意方法声明中返回值的类型和方法体中真正返回值的类型是否一致。

三、方法的调用。

在程序中,使用方法的名称可以执行方法中包括的语句,这个过程称为方法调用方法调用的一般形式如下。
对象名.方法名();

四、构造方法

构造方法是指在创建给定类的实例时调用的一个方法,他们与类同名,但不具备任何返回类型。当时用关键字new创建类的实例时,Java为对象分配内存,初始化实例变量并调用构造方法。

4.1构造方法的特点

⑴他的名字与类同名。
⑵没有返回值类型也不能用void修饰。
⑶一个类可以有不同参数列表的构造方法及构造方法可以重载。
⑷如果程序员未定义构造方法,系统会提供默认构造方法。
⑸如果程序员定义了一个或多个构造方法则,系统将自动屏蔽默认的构造方法。
⑹构造方法不能说明为native、 abstract、synchronized或final,也不能从父类继承构造方法。

五、变量的作用域

类中可以定义成员变量和成员方法。在类的方法,那也可以定义变量,但方法内的变量和方法外的变量在使用上是有区别的。

5.1在类中定义的变量称为类的成员变量。

5.2在方法中定义的变量称为局部变量。

5.3成员变量和局部变量的区别。

①定义位置不一样。
②作用范围不一样。
③默认值不一样。
④内存中位置不一样。
⑤生命周期不一样。

六、关键字

stdtic关键字,成员变量声明前必须加上关键字static关键字,static可用于变量,方法,甚至不属于方法的一段代码块。

6.1方法声明为静态时具有某些限制

①他们只能调用其他静态方法
②他们必须只访问静态数据
③不能使用关键字this和super

七、封装与访问控制

7.1封装的概念

封装是指将东西包装在一起,然后以新的完整形式呈现。对于OOP而言,封装是将方法和属性一起包装到程序单元中,这些单元以类的形式实现。
封装的好处之一是隐藏信息。信息隐藏是一个强大的技术工具,它能降低程序的复杂性。

7.2封装的实现

封装就是将属性私有化,提供公有方法访问私有属性。做法是修改属性的可见性来限制对属性的访问,并为每个属性创建一个取值(getter)和赋值(setter)方法。用以访问这些属性。
java语言具有隐藏类中复杂的实现细节的机制,这是通过为每个成员指定访问修饰符来写现的。访问修饰符可以确定如何访问某个成员,访同控制在某些方面与继承或包密切相关。前面模块中的程序已经使用过这些访问修饰符,此处提供它们的含义

1)public

  类的public(公有)成员可以被该类的成员和非该类的成员访问。 

2)private

类的private(私有)成员只能被该类的成员访问,任何非该类成员的代码不能访问任何私有方法或变量。使用private访问修饰符的主要目的是隐藏数据

3)protected

类的protected(保护)成员可以被该类的成员以及其子类的成员访问,还可以被同一个包内其他类的成员访问   

还有一个缺省情况,即类的成员没有修饰符,此时只有它本身的类和在同一个将递包的类里可以访问它

        Java中类的属性的具体封装步骤如下
   (1)修改属性的可见性来限制对属性的访问
   (2)为每一个属性创建一对赋值和取值方法,用于对这些属性进行访问
   (3)在赋值方法和取值方法中,加入对属性的存取限制

代码

package com.hg.day07;
public class Demo04Student {	
public static void main(String[] args) {		
student student1=new student();		student1.setAge(18);		
student1.setName("周敏");		
student1.show();		System.out.println("================");		student student2=new student();		student2.setAge(19);		
student2.setName("敏敏");		
student2.show();		
student1.show();					
}
}
package com.hg.day07;

public class student {
	String name;
	double age;
	public void eat() {
		System.out.println("吃饭");
	}
	public void sleep() {
		System.out.println("睡觉");
	}
	public void study() {
		System.out.println("学习");
	}
	public void show() {
		System.out.println("我叫"+name+"年龄"+age);
		
	}
	public void setName(String who) {
		name=who;
	}
	public void setAge(double num) {
		if(num<200&&num>=0) {
			age=num;
		}else {
			System.out.println("资源不合理!");
		}
	}
		
	}
package com.hg.day07;

public class Person {
	private String name;//姓名
	private double age;//年龄
	private boolean male;//是否为男性 true 1字节
	public void setMale(boolean boy) {
		male = boy;
	}
	public boolean  isMale() {
		return male;
	}
	public void setAge(double num) {
		if(num < 200  &&  num >=0) {
			age=num;
		}else{
		System.out.println("数据不合适");
	}
}
public double getAge() {
	return age;
}
public void getName(String who) {
	 name=who;
}
public String getName() {
	 return name;
}
public void show() {
	System.out.println("我"+ name +"年龄"+age);
}
}
package com.hg.day07;
public class demo01 {
	public static void main(String[] args) {		
int age1=19;		
test01 var1=new test01();		
var1.methodA();		System.out.println("================");		var1.name="周敏";	
	var1.age=18;		
	System.out.println(var1.name);		System.out.println(var1.age);		System.out.println("================");		var1.methodB();				
	}	
}
package com.hg.day07;

public class Demo02Method {
	//给一个数组,返还最大值
		public static int getMax(int[] array) {
			int max=array[0];
			for(int i=1;i<array.length;i++) {
				if(array[i]>max) {
					max=array[i];
				}
				
			}
			return max;
		}
	}
package com.hg.day07;

public class Demo02MethodUse {
	public static void main(String[] args) {
		int[] array= {5,15,25,500,20,100};
		int max=Demo02Method.getMax(array);
		System.out.println("最大值:"+max);
   }

}
package com.hg.day07;

public class Demo03Person {
	public static void main(String[] args) {
		Person person=new Person();
		person.setAge(19);
		person.getName("周敏");
		person.setMale(false);
	    person.show();
		if(person.isMale()==true)
		{
			System.out.println("男性");
		}else {
			System.out.println("女性");
		}
	}

}
package com.hg.day07;

public class Demo03Person {
	public static void main(String[] args) {
		Person person=new Person();
		person.setAge(19);
		person.getName("周敏");
		person.setMale(false);
	    person.show();
		if(person.isMale()==true)
		{
			System.out.println("男性");
		}else {
			System.out.println("女性");
		}
	}

}

程序结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

大数据2005周敏2020080605048

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值