java类和对象

43 篇文章 0 订阅
25 篇文章 0 订阅

(1).类的定义:一类具有相同属性(静态特性)和特征(动态特性 方法)的事或物的集合
(2).对象的定义:是某个类中某一个具体的个体就叫该类的一个对象(实体)
(3).类和对象的学习要点     a.基础语法 如何定义一个类 如何通过类来创建一个对象     b.学习面向对象编程思想(一种程序的写法思路 类和接口)        面向过程式的编程思想 冰箱开门  把大象放进去 把冰箱门关上        睁眼->起床->穿衣->洗漱->出门->吃饭->上厕所->上课        睁眼->上课        睁眼->穿衣->起床->出门->上课->吃饭->洗漱        面向对象编程思想  把大象关冰箱  这个事情一共有几个类 [大象(进入XX里面)  冰箱(开门  关门)]        冰箱对象.开门()   冰箱对象.关门()  区块链->去中心化        思维方式要发生改变: 老子 《道德经》道可道 非常道, 人法地 地法天 天法道 道法自然        让我们的写完的程序更能还原世间万物运行过程                 老太太[上交通工具 下交通工具]上公交车[进站 上车 下车 ]           
(4).代码的实现a.定义类中的属性:

public class Person {//类
    //属性(静态行为特征) 访问范围修饰符[public] 数据类型 变量名=值[默认值 String null]
    public String name="张三";//字符串 null
    public int age=30;//默认是0
    public int height=170;
    public int weight=100;
    //方法(动态行为特征)
 
}
b.创建对象
Person px = new Person();//类名 变量名 = new 类名();

c.属性的使用

//使用属性

public static void main(String[] args) {

    //创建对象 想用属性必须创建对象

    Person px = new Person();

    //使用属性 取值 赋值

    System.out.println(px.name);//对象.调用属性

    String x = px.name;

    System.out.println(x);

    //输出weight

    System.out.println(px.weight);

    int y = px.weight;

    System.out.println(y);

    px.age = 80;

    System.out.println(px.age);

}

深入灵魂的问题:为啥要用属性呢?代码上为了方便对变量进行统一的管理,程序设计上是为了让类具有某些特定的静态特征
b.方法方法的基本组成部分:   
1.访问范围修饰符[public]         2.返回值 : 方法做完事情以后给别人的结果,并且这个结果其他程序继续使用 - 返回值可以有 也可以没有        
3.方法名  任意:见名知意            驼峰法[如果该名字由多个单个单词描述,则该单词首字母小写,如果由多个单词组成,则第一个字母小写,其他单词首字母大写 chiFanHao]        
4.参数列表 : 做事情的时候别人给我的 可以有 也可以没有白哥-类  给白哥买烟(A.属性 B.方法)public   返回值(A.有 B.没有)   买烟(参数 A.有 B.没有)

//无返回值 无参数方法 -- 方法定义
public void test(){
    System.out.println("哎呀 我是一个无返回值 无参数滴方法");
}
//方法的调用和执行 - 调用式:在main中发生并且执行 注意 调用顺序决定执行顺序
Animal an = new Animal();
an.test();
//需要注意的地方
//1.语法
//2.调用和执行的顺序
//3.方法有啥用?方便于我们对复杂程序的封装使用,定义一次,以后使用起来非常的方便
//无返回值 有参数 -- 方法
//方法定义
public void testOne(int a,int b){
        int sum = a/b;
        System.out.println("除法结果:"+sum);
        System.out.println("有了个值:"+a);
        System.out.println("又有了个值:"+b);
}
//调用
Animal an = new Animal();
an.testOne(10,20);
注意:方法的参数 在方法定义时,不用考虑具体的值,可以认为a,b已经存在值了,但是调用时必须给具体值,否则会报错,参数的个数和类型没有具体要求和限制
 
//有返回值 无参数
public int testTwo(){
    System.out.println("我是一个有返回值的方法");
    return 1;
}
//调用
Animal an = new Animal();
int v = an.testTwo();
System.out.println(v);
//注意:有返回值的方法,必须在定义完方法以后,按照方法的要求添加适合的返回值。调用时,可以接受方法的返回值,但是接受时的数据类型必须和方法返回值的数据类型一致。也可以不接受
//有返回值 有参数
//定义
public int testThree(int a,int b){
   System.out.println("我是有返回值 有参数的方法");
   int sum = a + b;
   return sum;
}
//调用
Animal an = new Animal();
int value = an.testThree(10,20);
System.out.println(value);

(5).引用类型特性        基本数据类型和引用类型区别(6).使用数组来充当属性,参数和返回值        a.数组当属性        (a). 数组充当属性时,如果不赋值,它会有默认值为null        (b).数组属性的静态初始化形式有两种方式 在属性声明时可以直接使用静态初始化方式

public int[] values = {1,2,3};//默认值 - 初始化

在属性使用时那么只能以完成的静态初始化手段对其进行赋值

public static void main(String[] args) {
    Person p = new Person();
    System.out.println(p.values);
    //静态初始化对属性赋值
    p.values = new int[]{1,2,3};
    //动态初始化
}

(c).数组属性动态初始化1.属性使用时初始化

p.values = new int[3];
p.values[0] = 1;
p.values[1] = 2;
p.values[2] = 3;

2.声明时动态初始化

//定义属性时对数组进行初始化
public int[] values = new int[3];//默认值 - 初始化
//在后续使用时对数组元素赋值
Person p = new Person();
p.values[0] = 1;
p.values[1] = 2;
p.values[2] = 3;
for (int a : p.values){
    System.out.println(a);
}
//也可以在使用时完成动态初始化的全部流程
p.values = new int[3];
p.values[0] = 1;
p.values[1] = 2;
p.values[2] = 3;

b.数组作为方法的参数

public class ArrayUtils {
    //数组作为方法的参数
    //找到任意数组的中的最大值
    //是否需要返回值  是否需要参数
    public int findMax(int[] values){
        int max = values[0];
        for (int i = 1;i < values.length;i++){
            if (values[i] > max){
                max = values[i];
            }
        }
        return max;
    }
    public static void main(String[] args) {
        ArrayUtils au = new ArrayUtils();
        int m = au.findMax(new int[]{5,1,3,1,6,8,10,2});
        System.out.println(m);
    }
}

c.数组当返回值

  public int[] heBing(int[] v1,int[] v2){
    int[] v = new int[v1.length+v2.length];
    //赋值
    for (int i = 0;i < v1.length;i++){
        v[i] = v1[i];
    }
    for (int i = 0;i < v2.length;i++){
        v[v1.length+i] = v2[i];
    }
    return v;
}                                                                                                                                                                                                     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值