Java每日笔记 006 类与对象的认识

Java第六讲

类模板

类与对象

  1、对象:能提供内容(方法和属性)的东西叫对象。
  2、类:具有共同行为和特征的很多事务称为类。用属性来描述特征,用方法来描述行为。
 		方法名称后面的小括号中表示可以传递参数,括号中写参数列表。
  3、类与对象的关系
 		类是抽象的。用来描述同一类事物,对象是具体的,有具体的行为和特征。
 			关系:在Java中一切对象都是有类型的,即:对象需要使用类来创建。
  4、如何创建对象: 类型 对象名称 = new 类型();例:Gou xiaojinmaoGou = new Gou();
 		声明并实例化
 		使用类创建对象时,如果没有做特殊限制,则可以一直创建(对象的数量可以无限)
  5、使用对象的属性&方法
 		注意:点(".")表示关联,关联对象本身的属性和方法。
 		注意:关联的属性没有括号,关联的方法一定有括号。
 		注意:对象执行方法是,执行的是本身的方法。

	    堆 对象(划出一块内存)  
 		栈 属性 方法(数值)

  6、对象的引用
 			Gou xiaojinmao3 = new Gou();
 			Gou xiaohei = xiaoxinmao3;
 			xiaohei:引用对象 
 			xiaojuinmao3:被引用对象
 			注意:属性发生改变时,两个对象的属性值同事改变.

类的关键

	7、方法:有参、无参
 			无参:public void wan() {"玩和平精英"}
 			有参:public void chi(Fan fan){syso ("饿了,想吃饭。")}
 			总结:方法名称后面的小括号为参数列表,如果里面没有任何内容,则表示当前方法为无参方法,反之为有参方法。
 			注意:参数列表的形式: 类型 对象名称, 类型 对象名称,......  
 			
 			方法的组成:修饰符 有无返回值 方法名称 (参数列表){方法体}
 	8、成员变量/局部变量
 			成员变量:属性、全局变量 :写在类中,方法外的变量(对象)称为成员变量。
 			局部变量:写在方法内的变量称为局部变量。

类与方法案例


/*

Chengji类
*/

package com.wxkj.pan6;

import java.util.Scanner;

public class ChengJi {

	Scanner input = new Scanner(System.in);
	
	//提供一个空的数组,用于单独执行suan2方法。
	double[] scores = {};
	
	//课程数组,用于录入课程成绩
	String[] kecheng = {"java","html","db","css"};
	
	//此方法用来实现课程录入
	public void keChengLuRu() {
		kecheng = new String[10];
		int changdu = kecheng.length;
		for(int i=0;i<=changdu;i++) {
			if(i == 10) {
				//在数组长度即将超限时,创建一个长度更长的数组
				String[] kecheng1 = new String[15];
				//将原数组的元素依次放入新数组中
				for(int j=0;j<changdu;j++) {
					kecheng1[j] = kecheng[j];
				}
				//将新数组赋值给原数组
				kecheng = kecheng1;
				changdu = kecheng.length;
			}
			
			System.out.print("请输入第"+(i+1)+"门课程名称:");
			kecheng[i] = input.next();
			System.out.print("您还要继续录入课程吗?");
			String shifou = input.next();
			if(shifou.equals("n")) {
				break;
			}
		}
	}
		
	public void chengJiLuRu() {
		int kechengshu = kecheng.length;
		//确认有效课程的总数
		/**
		 * String类型的默认值:null
		 * 确认String类型数组元素不为空的方式:String类型对象 == null 或 String类型对象.equals(null)
		 */
		//创建一个计数器,用来记录当前数组中部位空的元素的个数。
		int num = 0;
		for(int i=0;i<kechengshu;i++) {
			if(kecheng[i] != null) {
				num ++;
			}
		}
		kechengshu = num;
		scores = new double[kechengshu];
		for(int i=0;i<kechengshu;i++) {
			System.out.print("请输入"+kecheng[i]+"成绩:");
			if(input.hasNextDouble()) {
				scores[i] = input.nextDouble();
			}else {
				System.out.println("输入错误,计算结束。");
				return;
			}
		}
	}
	
	public void jiSuan() {
		double sum = 0;
		double sc_avg = 0;
		int elements = scores.length;
		if(elements != 0) {
			System.out.println(elements);
			for(int i=0;i<elements;i++) {
				sum += scores[i];
			}
			sc_avg = sum / elements;
			System.out.println(elements+"门课程的总成绩为:"+sum+"\t平均分为:"+sc_avg);
		}else {
			System.out.println("请先录入成绩。");
		}
		
	}
}


/*Score类*/
package com.wxkj.pan6;

import java.util.Scanner;

public class Score {

	Scanner input = new Scanner(System.in);
	
	//提供一个空的数组,用于单独执行suan2方法。
	double[] scores = {};
	
	//课程数组,用于录入课程成绩
	String[] kecheng = {"java","html","db","css"};
	
	//此方法用来实现课程录入
	public void kechengluru() {
		kecheng = new String[10];
		int changdu = kecheng.length;
		for(int i=0;i<=changdu;i++) {
			if(i == 10) {
				//在数组长度即将超限时,创建一个长度更长的数组
				String[] kecheng1 = new String[15];
				//将原数组的元素依次放入新数组中
				for(int j=0;j<changdu;j++) {
					kecheng1[j] = kecheng[i];
				}
				//将新数组赋值给原数组
				kecheng = kecheng1;
			}
			System.out.print("请输入第"+(i+1)+"门课程名称:");
			kecheng[i] = input.next();
			System.out.print("您还要继续录入课程吗?");
			String shifou = input.next();
			if(shifou.equals("n")) {
				break;
			}
		}
	}
	
	
	
	public void suan() {
		double[] scores = new double[3];
		System.out.print("请输入java成绩:");
		if(input.hasNextDouble()) {
			scores[0] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		System.out.print("请输入html成绩:");
		if(input.hasNextDouble()) {
			scores[1] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		System.out.print("请输入DB成绩:");
		if(input.hasNextDouble()) {
			scores[2] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		double sum = 0;
		double sc_avg = 0;
		int elements = scores.length;
		for(int i=0;i<elements;i++) {
			sum += scores[i];
		}
		sc_avg = sum / elements;
		System.out.println(elements+"门课程的总成绩为:"+sum+"\t平均分为:"+sc_avg);
	}
	
	
	
	public void luRu() {
		scores = new double[4];
		System.out.print("请输入java成绩:");
		if(input.hasNextDouble()) {
			scores[0] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		System.out.print("请输入html成绩:");
		if(input.hasNextDouble()) {
			scores[1] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		System.out.print("请输入DB成绩:");
		if(input.hasNextDouble()) {
			scores[2] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
		
		System.out.print("请输入css成绩:");
		if(input.hasNextDouble()) {
			scores[3] = input.nextDouble();
		}else {
			System.out.println("输入错误,计算结束。");
			return;
		}
	}
	
	
	public void luRu1() {
		int kechengshu = kecheng.length;
		//确认有效课程的总数
		/**
		 * String类型的默认值:null
		 * 确认String类型数组元素不为空的方式:String类型对象 == null 或 String类型对象.equals(null)
		 */
		//创建一个计数器,用来记录当前数组中部位空的元素的个数。
		int num = 0;
		for(int i=0;i<kechengshu;i++) {
			if(kecheng[i] != null) {
				num ++;
			}
		}
		kechengshu = num;
		scores = new double[kechengshu];
		for(int i=0;i<kechengshu;i++) {
			System.out.print("请输入"+kecheng[i]+"成绩:");
			if(input.hasNextDouble()) {
				scores[i] = input.nextDouble();
			}else {
				System.out.println("输入错误,计算结束。");
				return;
			}
		}
	}
	
	public void suan1(double[] scores111) {
		double sum = 0;
		double sc_avg = 0;
		int elements = scores111.length;
		for(int i=0;i<elements;i++) {
			sum += scores111[i];
		}
		sc_avg = sum / elements;
		System.out.println(elements+"门课程的总成绩为:"+sum+"\t平均分为:"+sc_avg);
	}
	
	public void suan2() {
		double sum = 0;
		double sc_avg = 0;
		int elements = scores.length;
		if(elements != 0) {
			System.out.println(elements);
			for(int i=0;i<elements;i++) {
				sum += scores[i];
			}
			sc_avg = sum / elements;
			System.out.println(elements+"门课程的总成绩为:"+sum+"\t平均分为:"+sc_avg);
		}else {
			System.out.println("请先录入成绩。");
		}
		
	}
}
/*Test类的main方法*/
package com.wxkj.pan6;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Score score = new Score();
		score.kechengluru();
		score.luRu1();
		score.suan2();
	}

}

set() / get() 方法的理解和使用

java中 当定义了一个私有的成员变量的时候,如果需要访问或者获取这个变量的时候,就可以编写set或者get方法去调用。

set()是给属性赋值的,get()是取得属性值的
被设置和存取的属性一般是私有
主要是起到封装的作用,不允许直接对属性操作
set()和get()不一定同时存在,看程序需求

解释:属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句。

访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含。声明采用下列形式之一:get {}set {} get 访问器 get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。以下是返回私有字段 name 的值的 get 访问器:

package com.wxke05;

public class GuKe {
	public String k_name ;
	
	public int k_age;
	
	public boolean huiyan_flag;
	
	
	
	public void setk_age(int age) {
		if (age > 0) {
			k_age = age;
		}
	}
	public int get_age() {
		return k_age;
	}
	
	public void setk_name(String name) {
		k_name = name;
	}
	public String getK_name() {
		return k_name;
	}
	
	public void setHuiYuan_flag(boolean flag) {
		huiyan_flag = flag;
	}
	public boolean getHuiYuan_flag() {
		return huiyan_flag;
	}
	
}

单词
1.class 类
2.object 对象
3.OOP 面向对象(Object-Oriented Programming)
4.return 返回
5.encapsulation 封装
6.null 空
7.initial 初始化
8.type 类型

简答题

  1. 类与对象的关系是什么?
  2. 定义一个类的语法是什么?
  3. 如何创建一个类的对象?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值