4.14 什么时候定义成员变量

/*
定义一个类Demo,其中定义一个求两个数据和的方法,
定义一个测试了Test,进行测试。

变量什么时候定义为成员变量:
	如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量。

变量到底定义在哪里好呢?
	变量的范围是越小越好。因为能及时的被回收。
*/

//方式1
/*
class Demo {
public int sum() {
	int a = 10;
	int b = 20;
	int c = a + b;
	return c;
}
}
*/
//方式1满足了的要求,但是不好。
//因为参与操作的数据现在是固定的。

//方式2
/*
class Demo {
public int sum(int a,int b) {
	return a + b;
}
}
*/

//方式2可以满足的要求,但是学习过面向对象的思想。
//再想,a,b可不可以定义为成员变量呢?如果可以,再改进一版
class Demo {
	int a;
	int b;

	public int sum() {
		return a + b;
	}
}

// 虽然这种方式可以,并且好像是符合了面向对象的思想。
// 但是不好。
// 因为曾经说过:类是一组相关的属性和行为的集合。
// 并且类是通过事物转换过来的
// 而类中的成员变量就是事物的属性
// 属性是用来描述事物的
// 同理:成员变量其实是用来描述类的。

// 测试类
class Test {
	public static void main(String[] args) {
		//创建对象
		//方式1测试
		/*
		Demo d = new Demo();
		System.out.println(d.sum());
		*/

		//方式2测试
		/*
		Demo d = new Demo();
		int a = 10;
		int b = 20;
		System.out.println(d.sum(a,b));
		*/

		// 方式3测试
		Demo d = new Demo();
		d.a = 10;
		d.b = 20;
		System.out.println(d.sum());
	}
}

练习:

/*
定义一个长方形类,定义 求周长和面积的方法,
然后定义一个测试了Test2,进行测试。

长方形的类:
	成员变量:
		长,宽
	成员方法:
		求周长:(长+宽)*2;
		求面积:长*宽

注意:
	import必须出现在所有的class前面。
*/

import java.util.Scanner;

class ChangFangXing {
	// 长方形的长
	private int length;
	// 长方形的宽
	private int width;

	public ChangFangXing() {
	}

	// 仅仅提供setXxx()即可
	public void setLength(int length) {
		this.length = length;
	}

	public void setWidth(int width) {
		this.width = width;
	}

	// 求周长
	public int getZhouChang() {
		return (length + width) * 2;
	}

	// 求面积
	public int getArea() {
		return length * width;
	}
}

class Test2 {
	public static void main(String[] args) {
		// 创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入长方形的长:");
		int length = sc.nextInt();
		System.out.println("请输入长方形的宽:");
		int width = sc.nextInt();

		// 创建对象
		ChangFangXing cfx = new ChangFangXing();
		// 先给成员变量赋值
		cfx.setLength(length);
		cfx.setWidth(width);

		System.out.println("周长是:" + cfx.getZhouChang());
		System.out.println("面积是:" + cfx.getArea());
		sc.close();
	}
}

/*
需求:
	定义一个员工类,自己分析出几个成员,
	然后给出成员变量,构造方法,getXxx()/setXxx()方法,
	以及一个显示所有成员信息的方法。并测试。

分析:
	员工
		成员变量:
			员工编号,姓名,年龄
		构造方法:
			无参构造方法
		成员方法:
			getXxx()/setXxx()
			show();
*/
class Employee {
	// 员工编号
	private String employeeId;
	// 姓名
	private String name;
	// 年龄
	private int age;

	// 构造方法
	public Employee() {
	}

	// getXxx()/setXxx()
	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	// 显示所有成员信息的方法
	public void show() {
		System.out.println("员工编号是:" + employeeId + "的这个人是:" + name + "的年龄是:"
				+ age);
	}
}

class EmployeeTest {
	public static void main(String[] args) {
		// 创建对象
		Employee e = new Employee();

		// 给成员变量赋值
		e.setEmployeeId("czbk9527");
		e.setName("唐伯虎");
		e.setAge(18);

		// 获取数据
		// System.out.println(e.getEmployeeId()+"---"+e.getName()+"---"+e.getAge());

		// 在Employee类中定义了一个show方法。所以改进一下,使用show方法
		e.show();
	}
}

/*
定义一个类MyMath,提供基本的加减乘除功能,然后进行测试。
*/
import java.util.Scanner;

class MyMath {
	// 加法功能
	public int add(int a, int b) {
		return a + b;
	}

	// 减法功能
	public int sub(int a, int b) {
		return a - b;
	}

	// 乘法功能
	public int mul(int a, int b) {
		return a * b;
	}

	// 除法功能
	public int div(int a, int b) {
		return a / b;
	}
}

// 测试类
class MyMathTest {
	public static void main(String[] args) {
		// 创建键盘录入对象
		Scanner sc = new Scanner(System.in);

		System.out.println("请输入第一个操作数:");
		int firstNumber = sc.nextInt();
		System.out.println("请输入第二个操作数:");
		int secondNumber = sc.nextInt();

		// 创建MyMath对象,并使用
		MyMath mm = new MyMath();

		System.out.println("加法结果:" + mm.add(firstNumber, secondNumber));
		System.out.println("减法结果:" + mm.sub(firstNumber, secondNumber));
		System.out.println("乘法结果:" + mm.mul(firstNumber, secondNumber));
		System.out.println("除法结果:" + mm.div(firstNumber, secondNumber));
		sc.close();
	}
}
时间: 2024-11-11 03:10:53

4.14 什么时候定义成员变量的相关文章

java接口中定义成员变量

//抽象类中可以定义如下成员变量:public abstract class People { public String name; public int age; public abstract void work(); } 而如下截图中的People接口中,定义成员变量报错: 接口的含义理解:接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的 接口的成员特点: A:成员变量 只能是常量.默认修饰符 public static

Objective-c中定义成员变量

ios定义成员变量的方法: 如果只是内部访问,完全可以直接用_xxx(下划线),无需自己定义,编译器会自动生成 如果需要外部访问这个变量,可以用 @property xxx ; @synthesize xxx = _xxx ,这样,编译器会自动生成 get,set函数 :可以很明确的表明这是一个向外部提供set.get方法的属性. http://www.tairan.com/archives/194 Objective-c中定义成员变量

Java接口里定义成员变量 说明

首先你要弄清接口的含义.接口就是提供一种统一的'协议',而接口中的属性也属于'协议'中的成员.它们是公共的,静态的,最终的常量.相当于全局常量. 在interface里面的变量都是public static final 的.所以你可以这样写: public static final int i=10; 或则 int i=10;(可以省略掉一部分,在接口里的成员变量默认就是public static final) 注意在声明的时候要给变量赋予初值 解释: 首先你要弄清接口的含义.接口就是提供一种统

成员变量的定义与使用

成员变量又称为成员属性,它是描述对象状态的数据,是类中很重要的组成成分.本节详细讨论如何来定义成员变量.成员变量的访问权限,以及静态成员变量与实例成员变量之间的区别. 成员变量的定义 定义成员变量的语法如下:[变量修饰符] 类型说明符变量名类的成员变量和在方法中所声明的局部变量都是用户标识符,它们的命名规则相同.变量修饰符是可选项,一个没有变量修饰符的变量定义如下: public class Cuber{ double width,height; int number; } 成员变量的类型可以是

JAVA成员变量为什么不能在类体中先定义后赋值

1 package dx; 2 3 public class Test1 { 4 5 int a111;//定义成员变量(全局变量) 6 7 8 9 // a = 1;//此处若给变量赋值,会报错,JAVA所有的除定义或声明语句之外的任何语句都必须在方法内部(而方法又必须在某个类内部,不存在游离于类外部的方法或成员) 10 11 12 13 public static void main(String[] args) { 14 // TODO Auto-generated method stub

1.(1)编写一个接口ShapePara,要求: 接口中的方法: double getArea():获得图形的面积。double getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的dou

package jiekou1; public interface ShapePara { //定义常量PI final double PI=3.14; //定义抽象方法 //获得图形面积 double getArea(); //获得图形周长 double getCircumference(); } package jiekou1; public class Circle implements ShapePara { //定义成员变量 public double radius; public d

【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法

. 一. 类定义 类定义需要实现两部分 : -- 接口部分 : 定义类的成员变量和方法, 方法是抽象的, 在头文件中定义; -- 实现部分 : 引入接口部分的头文件, 实现抽象方法; 1. 接口部分定义 (1) 接口部分定义格式 接口部分定义格式 : @interface className : superClassName { type _variableName; ... ... } - (type) methodName : type parameterName; @end -- 接口定义

成员变量与局部变量的区别

1.在类中的位置不同 成员变量:在类中方法外面 局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) 2.在内存中的位置不同,可以看看Java程序内存的简单分析 成员变量:在堆中(方法区中的静态区) 局部变量:在栈中 3.生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失 4.初始值 成员变量:有默认初始值 局部变量:没有默认初始值,使用之前需要赋值,否则编译器会报错(The

黑马程序员—OC点语法和成员变量作用域

一.点语法 1.OC中点语法是方便从事别的语言开发的程序员迅速的转到OC开发当中,先看下面这个例子: 1 // 声明一个Person类 2 @interface Person : NSObject 3 { 4 int _age; 5 NSString *_name; 6 } 7 - (void)setAge:(int)age; 8 - (int)age; 9 @end 10 11 // 实现Person类 12 @implementation Person 13 - (void)setAge:(