面向对象的概念

.面向对象的重要的概念

类: 是一切具有相似事物的统称。是泛泛的概念。 可以描述一类事物的特征和行为

对象:是类的具体的实体,是类衍生出来的。有类才有对象

特征:  就是一类事物的属性 , 比如 人类的  名字   年龄   身高  体重...
		他们是静的东西  在Java中使用变量来表示  一类事物的特征
行为:  就是动作 
		他们是动的东西  在Java中使用 方法来表示  一类事物的行为
		
一个类是由特征(变量)和行为(方法)组成
	一个类准确来说暂时由变量和方法组成的
	
	人类:
		特征:Java中用变量
			名字
			年龄
			身高
			体重
			
			
		行为:  Java中方法
			吃饭 
			睡觉
			
			
		
		
	

3.声明一个类的语法格式

public  class 类 {
		特征(Java中的变量)
		行为(java 中暂时不带static的方法)
}
package com.qf.test;

/**
 * 
 * @author bowang
 * 人类:
 * 		特征:Java使用变量    以后我叫属性
 * 			名字
 * 			年龄
 * 			身高
 * 		
 * 			
 *		行为: Java中使用方法来表示
 *			吃饭
 *			睡觉
 */
public class Person {
		//特征:
		//类中的变量不要赋值
		String name;//默认的值  null
		int age;//默认值是0
		double height;//默认值是0.0
		
		
		//行为:
		//Java中的方法来表示
		//在类中暂时不要加static
		public  void eat () {
			System.out.println("能吃饭");
		}
		public void sleep () {
			System.out.println("站着睡");
		}
		
		
		//以上就是声明好的一个类

}

练习:

​ 狗类:

​ 属性: 名字 毛色 性别

​ 行为: 打架 看家

package com.qf.test;

public class Dog {

	//特征:
	String name;
	String color;
	char sex;//性别
	
	//行为:
	public void fight () {
		System.out.println("狗打架");
	}
	public  void lookHome () {
		System.out.println("狗看家");
	}
	
}

4.创建对象

一个类声明好以后,不用它 的话,他就一直存在,但是得用这个类,可以使用类衍生出来对象

通过类创建对象。官方术语: 实例化对象

对象存在的目的: 对属性进行赋值,对方法调用

1.先有类才能有对象

2.对象的创3建必须在main主函数中

对象创建的语法格式:

类  对象的名字= new  类();
package com.qf.test;

//测试类  带有main主函数的
public class Demo1 {
	public static void main(String[] args) {
		//创建对象必须在main主函数中创建
		//类  对象的名字 = new 类();  想创建人类的对象
		Person  person1 = new Person();//person1  具体的对象  人
		//person1 是Person类衍生出来的 
		//person1对象的特征和行为要参考Person类
		
		//person1的 名字 为  狗蛋
		person1.name = "狗蛋";//对对象中的属性进行赋值
		person1.age = 12;
		person1.height = 167;
		//以上对对象进行赋值
		
		//以下在打印数据
		System.out.println("person1这个对象的名字为:"+person1.name);
		System.out.println("person1这个对象的年龄为:"+person1.age);
		System.out.println("person1这个对象的身高为:"+person1.height);
		
		//类中有方法, 咱们可以使用 对象.方法的名字来调用方法
		person1.eat();
		person1.sleep();
		
		//通过类去创建一个对象,然后对对象的属性进行赋值,对对象的方法进行调用
		
	}
}

package com.qf.test;

public class Demo2 {
	public static void main(String[] args) {
		
		Dog dog1 = new Dog();
		
		//对属性进行赋值
		dog1.name = "大黄";
		dog1.color = "黑色";
		dog1.sex = '公';
		
		System.out.println("dog1的名字为:"+  dog1.name + ", dog1的颜色为:"+ dog1.color + ", dog1的性别为:"+ dog1.sex);
		//对方法进行调用
		dog1.fight();
		dog1.lookHome();
	}
}

类会声明了 对象也会创建。

5.创建类和带有main主函数的类可以写在一个文件中

现在写的额类和带有main主函数 不在同一个文件中,分开写的

但是也可以写在用一个Java文件中。新建的文件的名字应该是 测试类类名

package com.qf.test;


//当一个文件中有两个类的时候 ,只能有一个public 来修饰类
//The public type Pig must be defined in its own file
class Pig {
	String name;//名字属性
	double price;//猪肉的价格
	String color;//猪肉的颜色
	
	//行为
	public  void  upTree() {
		System.out.println("猪能上树");
	}
	
}



public class Demo3 {
	public static void main(String[] args) {
		//创建对象
		Pig pig1 = new Pig();
		pig1.name = "佩琪";
		pig1.price = 18.9;
		pig1.color = "pink";
		
		System.out.println("pig1的名字:" + pig1.name);
		System.out.println("pig1的价格:" + pig1.price);
		System.out.println("pig1的颜色:" + pig1.color);
		
		
		pig1.upTree();
		
	
	}
	
}

回顾上午的内容

1.创建类
	一个类 现在所学的是由属性和方法组成的
	calss Person {
		String name;
		int age;
		
		//行为  在Java中 用方法表示行为
		public void  eat () {
			sout("");
		}
	}
2.创建对象
	由类衍生出来的 具体的实体  模板  ==》  类  
    暂时在main主函数中    创建对象
    类 对象的名字 = new  类();
    对象.属性 = 值;
    
    
3.创建类和带有main主函数的类写在同一个文件中写法
	

6.构造方法

1.构造方法是用来初始化对象的(和创建对象有关的!!!)

2.构造方法必须写在实体类中 不是带有main主函数的类中

写在类似于 Person类 Dog类中

6.1无参构造方法

语法格式:

public  类名 () {
	语句体
}
package com.qf.test;

class People {
	//属性
	String name;
	int age;
	
	//定义一个无参构造方法
	public People () {
		System.out.println("嘻嘻");
		//this  当前对象
		name = "狗蛋";
		age = 12;
	}
}

public class Demo4 {
	public static void main(String[] args) {
		//依靠构造方法去创建 对象
		People people = new People();
		
		
		people.name = "二狗";
		people.age = 22;
		System.out.println(people.name);//
		System.out.println(people.age);//
		
		People people2 = new People();
	}
}

6.2有参构造方法

语法格式:

public 类名 (参数) {

}
package com.qf.test;

class Cat {
	String name;
	int age;
	char sex;
	
	
	
	
	//一旦在类中写了有参构造方法,默认无参构造方法就不在了
	//有参构造方法 是特殊的方法
	public  Cat (String name, int age, char sex) {
		//this 代表是当前对象  
		//this.name  当前对象的name属性
		this.name = name;
		this.age = age;
		this.sex = sex;
	}
	
	
	
}
public class Demo6 {
	public static void main(String[] args) {
		//创建对象和构造方法有关系,  new Cat();  依靠类中无参构造方法
		Cat cat = new Cat("二虎", 1, '公');
		
		cat.name = "二牛";
		cat.age = 12;
		cat.sex = '母';
		System.out.println(cat.name);//
		System.out.println(cat.age);//
		System.out.println(cat.sex);//
		
	}
}

package com.qf.test;


class Teacher {
	String name;
	double weight;
	int age;
	
	
	//快捷键  右键 -》source->Genarate Constructor using Field
	public Teacher() {
		
	}


	public Teacher(String name, double weight) {
		
		this.name = name;
		this.weight = weight;
	}


	public Teacher(String name, double weight, int age) {
	
		this.name = name;
		this.weight = weight;
		this.age = age;
	}
	
	
}
public class Demo7 {
	public static void main(String[] args) {
		//将实参(new Teacher("老邢", 200, 89);)赋值给形参(构造方法中),让形参给变量赋值即可
		Teacher teacher = new Teacher("老邢", 200, 89);
		System.out.println(teacher.name);
		System.out.println(teacher.weight);
		System.out.println(teacher.age);//
	}
}

作业:

1.总结   一周的总结
2一套卷子

查漏补缺

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值