java第六章总结(类与对象)

本文介绍了Java中的面向对象编程概念,包括对象的动态和静态属性,类的定义以及作为对象设计图的角色,强调了封装性、继承性和多态性。通过实例展示了如何创建和使用类,包括成员变量、构造方法、局部变量以及静态变量和方法的应用。同时,还提到了this关键字和静态代码块的功能。
摘要由CSDN通过智能技术生成

面向对象概述
对象:
世间万物都是对象;

通常划分为两个部分:动态属性和静态属性

动态属性就是对象可执行的动作

静态属性就是不能动的部分,这个部分被称为属性,任何对象都会具备其自身属性


类,是同一类事物的统称

类实质上就是封装对象属性和行为的载体

类是对象的设计图

面向对象具有封装性,继承性和多态性的特点

封装
是面向对象编程的核心,将对象的属性和行为封装起来,载体是类。

封装保证了类内部数据结构的完整性,使用类的用户不能轻易的直接操作类的数据结构,只能执行类允许公开的数据,避免了外部操作对内部数据的影响,提高了系统的可维护性。

继承
继承性主要利用特定对象的共有属性,子类可以继承父类所有的属性,子类还可以衍生子类,但最末尾的类依然能继承父类所有的属性

父类和子类存在一种关系,一个类在继承中它即可以是其他类的父类,为其他类提供属性和行为,也可以是其他类的子类。例如:三角形是图形类的子类也是等边三角形的父类。

多态
其实就是父类对象应用于子类的特征就是多态,多态就是继承父类的所有但又会有不属于父类也不同于其他子类的属性就相当于它的个性。

封装
成员变量和成员方法就是静态属性和动态属性;

在Java中,对象的·属性也称为成员变量,成员变量可以是任何类型,整个类中均是成员变量作用范围

1.为书添加书名属性

public class Book {//类
	private String name;//String类型的成员变量
	public String getName() {//name的Getter方法
		return name;
	}
	public void setName(String name) {//name的Setter方法
		this.name = name;//将参数值赋予类中的成员变量
	}
}

成员方法

框住局部变量

极限修饰符

getter:拿取和setter:设置鸟类名字 方法(自动生成)

1.右键

2.点击蓝色选项 

 局部变量

点击蓝色选项 

 

点击蓝色Generate,生成成功 

 

2.交换两个变量的值

public class ChangeDemo {

	public static int[] exchange(int []arr) {
		int tmp=arr[0];//创建局部变量tmp,保存数组第一个元素的值
		arr[0]=arr[1];//第二个元素值赋值给第一个元素
		arr[1]=tmp;//第二个元素的值赋给tmp
		return arr;
		
	}
	public static void main(String[]args) {
		int arr[]= {17,29};
		System.out.println("第一个值="+arr[0]+",第二个值="+arr[1]);
		arr=exchange(arr);
		System.out.println("第一个值="+arr[0]+",第二个值="+arr[1]);
	
	}
}

结果如下

 局部变量的有限范围

可以将局部变量的有效范围为变量的作用域,局部变量的有效范围从该变量的声明到该变量的结束为止

this关键字

用于表示本类当前的对象

类的构造方法

3.“构造”鸡蛋灌饼

package a;
 
public class b {
 
	int egg;//鸡蛋灌饼里蛋的个数
	public b(int egg) {//参数为鸡蛋灌饼里蛋的个数的构造方法
		this.egg=egg;//将参数依据egg的值赋给属性egg
	}
	public 	b() {//无参数构造方法默认给饼加一个蛋
		this(1);//调用参数为鸡蛋灌饼里蛋的个数的构造方法,并设置鸡蛋灌饼里蛋的个数为1
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		b cake1=new b();
		System.out.println("顾客不要求加蛋的数量,饼里会有"+cake1.egg+"蛋");
		b cake2=new b(2);
		System.out.println("顾客要求加2个蛋的数量,饼里会有"+cake2.egg+"蛋");
		}
 
}

结果如下

静态变量和静态方法

public class Bird {
	//静态属性————成员变量
	private String name;// 名字
	private String wing;// 翅膀
	// getter 和 setter 方法
	public String getName(){
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getwing(){
		return wing;
	}
	public void setwing(String wing) {
		this.wing = wing;
	}
	// 构造方法 调用后会产生一个对象
	public Bird() {
	}
	public Bird(String name) {
		this.name = name;
	}
	public Bird(String name, String wing) {
		super();
		this.name = name;
		this.wing = wing;
	}
	//动态属性————成员方法
	String eat(String food) {
		return name + "在吃" + food;
	}
	String fly() {
		return name + "在飞";
	}
	
}
public class Birdtest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// new 调用构造方法 产生一个对象
		Bird bird1 = new Bird();
		bird1.setName("布谷鸟");
		String fly = bird1.fly();
		System.out.print(fly);
		
		Bird bird2 = new Bird("大雁");
		String eat = bird2.eat("谷物");
		System.out.print(eat);
	}

}

4.创建并调用静态属性和静态变量

public class StaticDemo {
	//静态变量
	static double PI = 3.1415926;//在类中定义静态变量
	//静态常量
	static final int i =3;	//在类中定义静态方法
	//静态方法
	static void method() {
		System.out.print("静态方法");
	}
	//静态代码块
	static 
	{
	//1
	//2
	//3
	}
	public static void main(String[] arge) {
		System.out.println(StaticDemo.PI);//
		System.out.println(StaticDemo.i);
		StaticDemo.method();
	}
}

结果如下

5.统计顾客总人数

package b;
 
public class s {//类
	
	static  int i=0;//共享的属性,人数
	String name;//名称属性
	public s(String name ) {
		this.name=name;//记录名称
		i++;//人数递增
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		s c1=new s("tom");
		System.out.println("我是第"+s.i+++"名顾客,我叫"+c1.name);
		s c2=new s("张三");
		System.out.println("我是第"+s.i+++"名顾客,我叫"+c2.name);
		s c3=new s("狗蛋儿");
		System.out.print("我是第"+s.i+++"名顾客,我叫"+c3.name);
				
	}

}

 结果如下

6.读取主方法的参数值

public class MainDemo {

	public static void main(String[] args) {//定义主方法
		// TODO Auto-generated method stub
		for(int i = 0; i < args.length; i++) {//根据参数个数做循环操作
			System.out.println(args[i]);//循环打印参数内容
		}
	}
}

结果如下

 7.创建人类并创建其对象

package a;
 
public class b {		
	String name;
	int age;
	String sex;
	public b() {
		
	}
	public b(String name,int age,String sex) {
		this.name=name;
		this.age=age;
		this.sex=sex;
		
	}
	public static void main(String []args) {
		b p1=new  b("tom",23,"男");
		b p2=new b("lily",19,"女");
		
	}
 
}

8.描述狗的特征 

package a;
 
public class b {		
	String name;//名字
	String color;//颜色
	String vioce;//叫声
	
	public b(String name,String color,String vioce) {
		this.name=name;
		this.color=color;
		this.vioce=vioce;
		
	}
	public void call() {//叫
		System.out.println(vioce);
	}
	public static void main(String []args) {
		b d1=new  b("毛毛","白色","汪汪汪");
		System.out.print(d1.name+"的颜色是"+d1.color);//访问对象的属性
		System.out.print("叫起来的声音:");
		d1.call();//访问对象的行为
		b d2=new b("灰灰","灰色","嗷呜~");
		System.out.print(d2.name+"的颜色是"+d2.color);
		System.out.print("叫起来的声音:");
		d2.call();
		
	}
 
}

结果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值