第四天学习java-(4月20日)-千峰教程

第四天学习java-(4月20日)-千峰教程

【现实中的对象】
例如:手机 就是一个对象 ,其中有属性和方法
【程序中的对象】
想想要创建兑现个必须有模板 ,模板就是类
【什么是类】
类的抽取,在一组相同和类似的对象中,抽取共同的特征和行为,保留所关注的部分
【定义类】
public class Dog{
//品种
String breed;
//年龄
int age;
//性别
String sex;
String furcolor;//毛色
public void eat(){ //方法 称为实例方括号里面是传递参数
System.out.println(“eating”);
}
public void sleep(){
System.out.println(“Sleep”)

}

}
【对象的创建】
public calss TestCreateObject{
public static viod mian(String[] agrs){
// 基于Dog类创建的对象,将兑现保存在相同类型的mydog变量中,称为对象名或者是引用名
Dog mydog= new Dog();
//访问属性 对象名.属性名=值; // 赋值
mydog.breed=""萨摩;
mydog.age=2;
mydog.sex=“公”;
mydog.furColor=“白色”;
//获取对象中的属性值
System.out.print(mydog.breed);
//调用方法
mydog.eat();
mydog.sleep();
}
}
【类域对象之间的关系】
类:定义了对象应该具有的特征和行为,类似对象的模板
对象:拥有多个特征和行为的实体,对象是类的实例
【实例变量 就是在类中声明的申明的变量】类中的变量声明之后,编译不会报错
只要实例化类了之后
,就可以直接访问,只是访问的值为默认值 ;
整数 是 0
小数是 0.0
字符是:\u0000
布尔型 :false
其他:null
【实例变量和局部变量之间的区别】
局部变量:
定义的位置:方法或者是方法内的结构当中
默认值:无默认值
使用范围:从定义到包含结构其他结构结束
命名冲突:不允许同名
实例变量:
定义的位置:类的类部,方法的外部
默认值:字面值和数组一样
适用范围:本类有效
命名冲突:可与局部变量重名,局部变量优先
【实例方法】
方法的声明:代表对象能做什么,组成:修饰符,返回值类型 方法名(形参列表)
方法的实现:代表对象能做什么,即如何实现对应的功能 组成:{}
【输出字符串的时候,这里会进行】
变量前后用+变量+:进行连接
【当最后new的时候,创建对象的时候】
调用方法时候返回的是当前的所赋予的值
【方法中带有参数的方法】
例如:
//创建学生对象
public class Student{
String name;
int age;
public viod syHello(){
System.out.print(“大家好我是”+name);

}

}
//创建老师对象
public class Teacher{
String name;
int age;
public viod syHello(){
System.out.print(“大家好我是”+name);
}
public void sy(Student s){
s.syHello();
}

}//创建学生对象
public class Student{
String name;
int age;
public viod syHello(){
System.out.print(“大家好我是”+name);

}

}
//创建老师对象
public class Teacher{
String name;
int age;
public viod syHello(){
System.out.print(“大家好我是”+name);
}
public void sy(Student s){
s.syHello();
}

}
//测试带有参数的函数
public class Test{
pubic static void main(String[] args){
Student student = new Student();
student.name=“小明”;
student.age=12;
Teacher teacher = new Teracher()
teacher.name=“王老师”;
teacher.age=35;
teacher.syHello();
teacher.sy(student1);
}

}
【方法重载】
有些情况,对象的统一行为,可能存在多种实现过程
例如:人的吃饭和吃药就存在差异(只是传递的参数不一样而已)
定义 :在一个类中定义多个名称相同但是参数不相同的方法 称为方法重载
要求:
方法名称相同
参数列表相同(类型、个数、顺序)
与访问修饰符、返回值的类型无关
例如:
public class operation{
public viod show(){
System.out.print(“您好”);
}
public viod show(int i ){
System.out.print(“您好”+i);
}
public viod show(double i){
System.out.print(“您好”+i);
}

}
注意:当你输入100的时候,方法默认会调用方法为参数为int类型的 如果没有int 类型,只有double类型的时候,这时候会自动匹配为double类型
注意 :知识参数名称的不同不能够构成方法的重载
【构造方法】
构造方法:类中的特殊方法,主要是用于创建对象
特点:
名称和类名完全相同
没有返回值类型
创建对象的时候调用构造方法,不可通过局点调用 //相当于init方法
注意:如果没有在类中显示定义构造方法,则编译器默认提供一个无参数的构造方法
例如:
public class Student{
String name;
int age;
public Student(){ //如果没有添加构造方法的时候,编译器会默认给你添加构造方法
构造方法主要是为了初始化变量的值,初始化定义的值
name = “小明”;
age = 15;
Sytsem.out.print(“这是构造方法”);
}
public viod syHello(){
System.out.print(“大家好我是”+name);

}

}
【解析 Student student= new Student();】
他的三个功能:
功能
(1)内存中开辟了一个空间赋值为属性为默认值; //在栈藜麦你和堆里面分别开辟空间 并未其属性赋值为默认值,
(2)调用构造方法进行初始化//在堆对象里面进行初始化里面的值,这是调用构造方法
(3)把开辟空间的地址赋值个给实例化的这个对象,//然后把开辟的地址空间赋值给创建的对象
【对象的内存分配】
在这里插入图片描述

在开始执行new这一条语句的时候里面的属性值,都是为默认值
在执行了s.name=”tom”;//就会对为null的值进行赋值
【构造方法重载】
构造方法也可以重载,可以用不同参数来进行,只要类型和参数的顺序和个数不一样都可以进行重载
public class Student{
String name;
int age;
//构造方法,可以通过传递参数来改变初始值
public Student(String s){
name=s;
}
public Student(String s,int i){
//这是够着方法在新开辟的地址空间里面创建的变量初始化
name=s;
age=i;
}

}
注意:在构造方法中无参数的构造方法不能去掉,否者或进行报错,要么就不写构造方法,要么就要写生无参数的构造方法,和其他构造方法(因为在new 的时候调用的方法是无参数的 返回的是)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值