笔记内容——JAVA面向对象

一、思维导图

 

 

 

二、学习内容

复制代码
package com.jsoft.morning;

public class Ch02 {
    public static void main(String[] args) {
        //创建了一个Ch02这个类的对象
        //根据图纸去造车
        //创建对象的过程,类的实例化的过程,对象又叫做类的一个实例
        //我们创建了一个Car类的对象car1
        //这个car1就是对象的名
        //其实这个car1就是个标识符
        //对象名的命名规则:小驼峰
        //创建对象的语法:类名 对象名 = new 类名();
        Car car1 = new Car();
        //给车的属性赋值
        car1.brand = "奥迪";
        car1.color = "白色";
        car1.length = 5L;

        //取出属性的值
        System.out.println("生产了第1台汽车,它的属性为:"+ car1.brand+car1.color+car1.length+"米");
        Car car2 = new Car();
        car2.brand = "丰田";
        car2.color = "灰色";
        car2.length = 4L;
        System.out.println("生产了第2台汽车,它的属性为:"+ car2.brand+car2.color+car2.length+"米");

        /*
            car1和car2都是Car类的一个实例(对象)
            但是他们之间是相互隔离的。

            Car是类,只有一份
            car1,car2......car100是根据类构建出来的【实例对象】,可以有很多个,而且他们可能都不一样。
         */


    }
}
复制代码
复制代码
package com.jsoft.morning;

import java.util.Scanner;


public class Ch04 {
    public static void main(String[] args) {
      /*  Scanner sc=new Scanner(System.in);
        String flag = sc.next();*/


        Car car1 = new Car();
        //对象.属性名
        car1.brand = "大众";
        car1.color = "黑色";
        car1.length = 6L;
        //对象.方法名
        //car1.run(95,"锦湖轮胎");
        //有返回值的方法在执行后会得到一个具体的值,这个值是可以存下来的
        boolean result = car1.run(95);
        System.out.println(result);
    }
}
复制代码
复制代码
package com.jsoft.morning;
/*
    我们要造车,必须有一个图纸
    根据图纸,可以造一百台车
    这个图纸就是在描述车的具体信息,对车的信息进行封装

    封装:1、代码层面 2、思想层面
    如果把变量直接声明在类里:成员变量(全局变量)
    如果把变量的声明在某个方法里(局部变量)

    成员变量->属性
 */
public class Car {

        //车的品牌
        //只声明,不赋值
        String brand;
        //车的颜色
        String color;
        //车的长度
        long length;
        
        public boolean run(int gasoline){
                if (gasoline==92){
                        System.out.println("92号汽油跑的很快!");
                        return true;
                }else if (gasoline==95){
                        System.out.println("95号汽油跑的更猛");
                        return true;
                }else {
                        System.out.println("你加了假油吧");
                        return false;
                }


        }

}
复制代码
复制代码
package com.jsoft.afternoon;
/*
    成员方法
    1、方法名不能重复

    自己调自己-递归
    递归的问题:StackOverflowError 栈溢出 内存溢出
    开发中到底要不要用递归?如果用的话,要注意什么?


 */
public class Ch01 {
    //斐波那契数列
    /*
        我们知道除了0和1之外,第number个数字
        等于第number-1个数和number-2个数的和

    */
    public int fibonacci(int number){
        if (number==1||number==0){
            return number;
        }else {
            return fibonacci(number-1)+fibonacci(number-2);
        }

    }
    public int factorial(int number){
        //阶层
        //循环的做法
        /*int result=1;
        for (int i = 1; i <= number; i++) {
            result*=i;
        }
        return result;*/
        if (number<=1){
            return number;
        }else {
            return number*factorial(number-1);
        }
    }
//    public void run(){
//        run();
//        System.out.println("汽车启动了!");
//    }
    //main方法 主方法
    /*
    * 如果一个方法要调用一个非static的方法
    * 就只能创建对象,使用对象。方法的形式调用
    */
    public static void main(String[] args) {
       Ch01 c=new Ch01();
//       c.run();
//        c.fibonacci(3);
        int i = c.factorial(5);
        System.out.println(i);
    }


}
复制代码
复制代码
package com.jsoft.afternoon;
/*
    用一个方法,能够计算多个数相加
 */
public class Ch04 {
    /*
        用这一个方法可以实现之前我们写过的方法重载的功能
     */
    /*public int  sum(int [] arr){
        int result=0;
        if (arr.length<2){
            result = arr[0];
        }else {
            for (int i:arr){
                result += i;

            }
        }
        return result;
    }*/
    /*不定长参数
        1、参数列表中,至多有一个不定长参数
        2、不定长参数必须在最后位置
     */
    public int sum(String d,int ... arr){
        int result=0;
        if (arr.length<2){
            result = arr[0];
        }else {
            for (int i:arr){
                result += i;

            }
        }
        return result;

    }
    public static void main(String[] args) {
        Ch04 c = new Ch04();
//        int [] arr = new int[]{1,2,34,4};
//        System.out.println(c.sum(arr));
        c.sum("2",2,2,3,42,3,5,2);
        System.out.println(c.sum("1",2,2,3,42,3,5,2));
    }
}
复制代码

构造函数

复制代码
package com.jsoft.afternoon.demo;

import java.lang.invoke.CallSite;
/*
    类与类之间的关系
    has a的关系
 */
public class Person {
    String name;
    int gender;
    int age;

    //这个人有一个猫
    Cat cat;
    public Person(String n,int g,int a,Cat c){//构造器可以传Cat
        name=n;
        gender=g;
        age=a;
        cat=c;
    }
    public void show(){
        System.out.println("姓名"+name+"性别"+(gender == 1 ? "男":"女")+"年龄"+age+ "猫的信息"+cat.show());
    }
    public  void look(){

    }
}

package com.jsoft.afternoon.demo;

public class Cat {
    String variety;
    int age;
    String color;

    public Cat(String v,int a,String c){//三个参数构造器
        variety=v;
        age=a;
        color=c;
    }
    public String show(){
        return "品种:"+variety+"年龄:"+age+"颜色"+color;

    }}




package com.jsoft.afternoon.demo;

public class Demo {
    public static void main(String[] args) {
        Cat cat = new Cat("布偶",2,"黑白");
        Person person = new Person("jim",  1,30,cat);
        person.show();
        person.look();
    }
}
复制代码

 

三、、笔记内容

 

posted @   LJMMJL  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示