吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2120|回复: 13
收起左侧

[Java 转载] 类和对象

  [复制链接]
Simp1e 发表于 2022-3-2 13:30
本帖最后由 Simp1e 于 2022-3-2 13:33 编辑

(1).类的定义:一类具有相同属性(静态特性)和特征(动态特性 方法)的事或物的集合
(2).对象的定义:是某个类中某一个具体的个体就叫该类的一个对象(实体)
(3).类和对象的学习要点     a.基础语法 如何定义一个类 如何通过类来创建一个对象     b.学习面向对象编程思想(一种程序的写法思路 类和接口)        面向过程式的编程思想 冰箱开门  把大象放进去 把冰箱门关上        睁眼->起床->穿衣->洗漱->出门->吃饭->上厕所->上课        睁眼->上课        睁眼->穿衣->起床->出门->上课->吃饭->洗漱        面向对象编程思想  把大象关冰箱  这个事情一共有几个类 [大象(进入XX里面)  冰箱(开门  关门)]        冰箱对象.开门()   冰箱对象.关门()  区块链->去中心化        思维方式要发生改变: 老子 《道德经》道可道 非常道, 人法地 地法天 天法道 道法自然        让我们的写完的程序更能还原世间万物运行过程                 老太太[上交通工具 下交通工具]上公交车[进站 上车 下车 ]        去耦合化  James Gosling  程序员的十重楼[大哲] 李开复      
(4).代码的实现a.定义类中的属性:
[Java] 纯文本查看 复制代码
public class Person {//类
    //属性(静态行为特征) 访问范围修饰符[public] 数据类型 变量名=值[默认值 String null]
    public String name="张三";//字符串 null
    public int age=30;//默认是0
    public int height=170;
    public int weight=100;
    //方法(动态行为特征)

}
b.创建对象
[Java] 纯文本查看 复制代码
 Person px = new Person();//类名 变量名 = new 类名();
c.属性的使用
[Java] 纯文本查看 复制代码
//使用属性
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.没有)
[Java] 纯文本查看 复制代码
//无返回值 无参数方法 -- 方法定义
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).数组属性的静态初始化形式有两种方式 在属性声明时可以直接使用静态初始化方式
[Java] 纯文本查看 复制代码
public int[] values = {1,2,3};//默认值 - 初始化
在属性使用时那么只能以完成的静态初始化手段对其进行赋值
[Java] 纯文本查看 复制代码
public static void main(String[] args) {
    Person p = new Person();
    System.out.println(p.values);
    //静态初始化对属性赋值
    p.values = new int[]{1,2,3};
    //动态初始化
}
(c).数组属性动态初始化1.属性使用时初始化
[Java] 纯文本查看 复制代码
p.values = new int[3];
p.values[0] = 1;
p.values[1] = 2;
p.values[2] = 3;
2.声明时动态初始化
[Java] 纯文本查看 复制代码
//定义属性时对数组进行初始化
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.数组作为方法的参数
[Java] 纯文本查看 复制代码
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.数组当返回值
[Java] 纯文本查看 复制代码
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;
}

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Heasitation + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

knowfire 发表于 2022-3-18 00:03
讲的挺不错的 我的入门语言也是学的Java 这种通俗易懂的对象解释要是能让更多学习的新手看到就更好了
RemMai 发表于 2022-3-2 16:15
bwuaich 发表于 2022-3-2 17:20
来学习, 和复习, 重温一下; 谢谢分享; 欢迎交流; 哈哈
Heasitation 发表于 2022-3-2 20:59
这学期学习java
不错
sundong123 发表于 2022-3-14 10:15
有点懵还是不太明白类和对象的区别
cuixh11 发表于 2022-3-15 16:46
感谢分享,很有用
HiLwz 发表于 2022-3-15 23:53
非常有用
VampireQ 发表于 2022-3-16 07:33
感谢分享!
chinguy 发表于 2022-3-16 08:09
可以编辑下格式,内容还是很好地。
Fhup 发表于 2022-3-16 08:30
这也太秀了,基础知识点理解透了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-28 18:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表