**小白的Java学习之旅**------面向对象

1.编程思想概述
案例背景:从A城市坐车到B城市,方式有两种
面向过程思想c:自己开车去(需要知道路线,需要开车技术等等细节)
面向对象思想java:雇一个司机去(不必在意实现细节)
2.对象
1.概念:万物皆对象,现实生活中客观存在的事物都可以称为对象
2.属性:代表对象所拥有的属性 对象有什么
3.行为(方法):代表对象具有某种技能 对象能够做什么
3.类
1.概念:是具有相同特征的一类事物的抽象概括,是创建对象的模板
2.属性:成员变量
3.行为:成员方法
4.成员变量
1.位置:类的内部 方法的外部
2.作用域:至少在本类
3.语法:数据类型 变量名
4.特点:成员变量有默认值,默认值的类型和 数组元素中的默认值一致
整型: 0
浮点:0.0
字符:’\u0000’
布尔:false
注意:在定义类的同时可以直接给变量赋值(初始值)
案例:

import java.util.*;
public class Test{
	public static void main(String[] args){
		//创建对象
		Student s = new Student();
		//访问属性
		System.out.println(s.name+"---"+s.age);
	}
}
class Student{
	//成员变量
	String  name = "小花";
	int age = 18;
}

6.创建对象
1.语法:类名 对象名 = new 类名();
2.访问成员变量: 对象名.属性名

成员变量局部变量
位置类中方法外方法中
作用范围至少在本类从定义位置到方法结束
默认值有默认值无默认值
重名成员变量之间不可以重名成员变量和局部变量之间是可以重名

7.成员方法
语法://将函数中的static去掉
修饰符 返回值类型 方法名(形参列表){ }
调用成员方法
语法:对象.方法名();
案例:

import java.util.*;
public class Test{
	public static void main(String[] args){
		//创建对象
		Student s = new Student();
		//访问属性
		s.study();
	}
}
class Student{
	//成员变量
	String  name = "小花";
	int age = 18;

	public void study(){
		//局部变量
		String name = "小黑";
		System.out.println(name+"学习");
	}
}


7.方法的重载
引出案例:

import java.util.*;
public class Test{
	public static void main(String[] args){
		Person p = new Person();
	}
}

class Person{
	String name;
	int age;
	public void eat1(药){
		
	}
	public void eat2(馒头){

	}
	public void eat3(水){
		
	}

}

概念:方法的重载(OverLoad)就是定义相同的方法名,参数列表不同,系统会根据所传的实际参数自动匹配相应的方法,以屏蔽方法间参数的差异
特点:
1.方法名相同
2.参数列表不同(顺序,数据类型,个数)
3.和返回值无关,和修饰符也无关

注意:
1.参数名不同不能叫做重载
案例:

//以下两个函数不能构成重载
//计算两个数的和
public void add(int a,int b){
	System.out.println(a+b+"zz");
}//整数
public void add(int b,int a){
	System.out.println(a+b+"zz");
}//整数

2.当一个类中,定义的方法的参数可能会出现比其他方法参数类型大的情况,那么这时就会遵循就近匹配的原则,当所传实际参数没有在类中匹配的方法,就会自动匹配比所传实际参数类型大的方法
案例:

import java.util.*;
public class Test{
	public static void main(String[] args){
		Sum s = new Sum();
		s.add(100,100);
	}
}

class Sum{
	//计算两个数的和
	public void add(int a,int b){
		System.out.println(a+b+"zz");
	}//整数
	public void add(double a,double b){
		System.out.println(a+b+"xx");
	}//小数
}


构造方法
语法:
1.构造方法的方法名和类名一致(包括大小写)
2.构造方法没有返回值类型
3.构造方法可以重载
4.构造方法不可以手动调用
案例:

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

对象创建的过程:
第一步:分配空间,为属性赋默认值
第二步:为属性赋初始值
第三步:jvm调用构造方法完成创建对象

注意:当定义一个类时,如果没有定义构造方法,系统会自动添加一个公开的、无参构造方法,如果定义了有参构、无参构造方法造方法,系统就不再为这个类提供公开的,若还想使用无参构造方法,那么必须自己写出来。
案例:

import java.util.*;
public class Test{
	public static void main(String[] args){
		Student s = new Student();
	}
}
class Student{
	String name;
	int age;
	public void study(){
		//局部变量
		String name = "小花";
		System.out.println(name+"学习");
	}
}


构造方法的作用:
重新为属性进行初始化赋值

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值