栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java面向对象什么意思(什么是java面向对象)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java面向对象什么意思(什么是java面向对象)

1.类和对象是什么?
    类:是共同特征的描述(设计图);
    对象:是真实存在的具体实例。

2.如何设计类?
        1).成员变量(代表属性的,一般都是名词)
        2).成员方法(代表行为的,一般是动词)

3.如何创建对象?
        类名 对象名 = new 类名();

4.拿到对象后怎么访问对象的信息?
        对象.成员变量
        对象.成员方法(…)

5.类名首字母建议大写,满足驼峰模式,不能用关键字,必须是合法标识符,且有意义

6.一个Java文件中可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。

7.成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;

         一般无需指定初始化,存在默认值。
8.对象到底是放在哪个位置?

        堆内存中
9. CarObject car = new CarObject();car变量名中存储的是什么?

        存储额是对象在内存中的地址。
10.成员变量(name、price)数据放在哪里?存在哪个位置?

        对象中,存在于堆内存中

实例:
public class CarObject {
    
    String name;
    double price;

    
    public void start(){
        System.out.println(name + "启动了");
    }

    public void run(){
        System.out.println("价格是:" + price + "万的" + name + "跑的很快");
    }
}


1.构造器的作用?
        初始化类的对象,并返回对象的地址。
2.构造器有几种,各自的作用是什么?
        无参数够赞其:初始化对象时,成员变量的数据均采用默认值。
        有参数构造器:在初始化对象的时候,同时可以接受参数为对象赋值
3.构造器有哪些注意事项?
        任何类定义出来,默认就自带了无参数构造器,写不写都有。
        一旦定义了有参数构造器,无参数构造器就没有了,此时就需要自己写无参数构造器。

实例:
public class Car {
    String name;
    double price;

    //无参构造器
    public Car() {
        System.out.println("无参构造器");
    }

    //有参构造器
    public Car(String n,double p){
        System.out.println("有参构造器");
        name = n;
        price = p;
    }
}


public class Test {
    public static void main(String[] args) {
        //通过调用构造器得到对象
        Car c = new Car();
        System.out.println(c.name);
        System.out.println(c.price);

        //调用有参数构造器
        Car c2 = new Car("奔驰",39.8);
        System.out.println(c2.name);
        System.out.println(c2.price);
    }
}

1.this关键字是什么?
        出现在构造器和成员方法之中,代表当前对象的地址。
2.this关键字在构造器中、成员方法中可以做什么?
        用于指定访问当前对象的成员。
3.什么是封装?
        告诉我们,如何正确设计对象的属性和方法。
        原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。
4.理解封装思想有什么好处?
        让编程边的很简单,有什么事,找对象,调方法就行。
        降低我们的学习成本,可以少学、少记,或者说压根不用学,不用记对象的那么多方法,有需要时去找就行。

实例:
public class Car {
    String name;
    double price;

    public Car(){
        System.out.println("无参数构造器中的this:" + this);
    }


    //有参构造器
    public Car(String name, double price) {
        this.name = name;
        this.price = price;
    }

    public void run(){
        System.out.println("方法中的this:" + this);
    }

    public void goWith(String name){
        System.out.println(this.name + "正在和" + name + "比赛");
    }
}


//理解this关键字的作用
public class Test {
    public static void main(String[] args) {
        //创建汽车对象
        Car car = new Car();
        car.run();

        System.out.println(car);

        System.out.println("-----------------");
        Car car1 = new Car("奔驰",39.9);
        System.out.println(car1.name);
        System.out.println(car1.price);

        car1.goWith("宝马");
    }
}
public class Student {
    //1.成员变量,使用private修饰,只能在本类中访问了。
    private int age;

    

    public void setAge(int age) {
        if (age>=0 && age <= 110) {
            this.age = age;
        }else {
            System.out.println("您的年龄数据有问题");
        }
    }

    public int getAge() {
        return age;
    }
}


//学习如何进行更好的封装
public class Test2 {
    public static void main(String[] args) {
        Student s = new Student();
        s.setAge(-23);
        System.out.println(s.getAge());
    }
}



1.JavaBean
        也可以称为实体类,器对象可以用于在程序中封装数据。
2.标准的JavaBean须满足如下书写要求:
        成员变量使用private修饰。
        提供成员变量对应的setter和getter方法
        必须提供一个无参构造器,有参构造器可写可不写。

实例:
public class Movie {
    //1.成员变量
    private String name;
    private double score;
    private String actor;

    public Movie() {
    }

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

    //2.getter + setter
    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}
public class Test2 {
    public static void main(String[] args) {
        //1.设计电影类
        //2.创建3个电影对象,封装电影的信息
        //3.定义一个电影类型的数组,存储3部电影对象
        Movie[] movies = new Movie[3];
        //数组中存储的元素并不是对象本身,而是对象的地址。
        movies[0] = new Movie("《长津湖》",9.7,"吴京");
        movies[1] = new Movie("《我和我的父辈》",9.6,"吴京");
        movies[2] = new Movie("《扑水少年》",9.5,"王川");

        //4.遍历数组中的每个电影对象,然后获取它的信息并展示出来
        for (int i = 0; i < movies.length; i++) {
            Movie movie = movies[i];
            System.out.println("电影名: " + movie.getName());
            System.out.println("评分: " + movie.getScore());
            System.out.println("主演: " + movie.getActor());
            System.out.println("--------------------------");
        }
    }
}
综合实例:购物车基础小案例
public class Goods {
    int id;         //标号
    String name;    //名称
    double price;   //价格
    int buyNumber;  //商品数量

}
public class ShopCarTest {
    public static void main(String[] args) {
        //1.定义商品类,用于后期创建商品对象
        //2.定义购物车对象,使用一个数组对象表示。
        Goods[] shopCar = new Goods[100];
        //3.搭建操作架构
        while (true) {
            System.out.println("请您选择如下命令进行操作:");
            System.out.println("添加商品到购物车:add");
            System.out.println("在购物车查询商品:query");
            System.out.println("修改商品购买数量:update");
            System.out.println("结算购买商品的金额:pay");
            Scanner sc = new Scanner(System.in);
            System.out.println("请您输入命令:");
            String command = sc.next();
            switch (command) {
                case "add":
                    //添加商品到购物车
                    addGoods(shopCar, sc);
                    break;
                case "query":
                    //在购物车查询商品
                    queryGoods(shopCar);
                    break;
                case "update":
                    //修改商品购买数量
                    updateGoods(shopCar, sc);
                    break;
                case "pay":
                    //结算购买商品的金额
                    pay(shopCar);
                    break;
                default:
                    System.out.println("没有该功能");
                    break;
            }
        }
    }

    public static void pay(Goods[] shopCar) {
        queryGoods(shopCar);
        //1.定义一个求和变量累加金额
        double money = 0;
        //2.遍历购物车数组中的全部商品对象,累加单价*数量
        for (int i = 0; i < shopCar.length; i++) {
            if (shopCar[i] != null) {
                Goods g = shopCar[i];
                money += (g.price * g.buyNumber);
            }else {
                break;
            }
        }
        System.out.println("订单总金额:" + money);
    }

    public static void updateGoods(Goods[] shopCar, Scanner sc) {
        //用户输入要修改的商品id,根据id查询出要修改的商品对象
        while (true) {
            System.out.print("请您输入要修改的商品id:");
            int id = sc.nextInt();
            Goods g = getGoodsById(shopCar, id);
            if (g == null) {
                //没有商品
                System.out.println("该购物车没有此商品!");
            } else {
                //说明存在该商品,可以修改
                System.out.println("请您输入" + g.name + "商品最新购买数量");
                int buyNumber = sc.nextInt();
                g.buyNumber = buyNumber;
                System.out.println("修改完成");
                queryGoods(shopCar);
                break;
            }
        }
    }

    public static Goods getGoodsById(Goods[] shopCar, int id) {
        for (int i = 0; i < shopCar.length; i++) {
            Goods g = shopCar[i];
            if (g != null) {
                //判断这个商品的id是否是我们要找的
                if (g.id == id) {
                    return g;
                } else {
                    return null;
                }
            }
        }
        return null;
    }

    //查询购物车商品
    public static void queryGoods(Goods[] shopCar) {
        System.out.println("=============购物车商品信息如下===============");
        System.out.println("编号tt名称ttt价格ttt购买数量");
        for (int i = 0; i < shopCar.length; i++) {
            Goods g = shopCar[i];
            if (g != null) {
                //展示这个商品对象
                System.out.println(g.id + "tt" + g.name + "ttt" + g.price + "ttt" + g.buyNumber);
            } else {
                //遍历结束
                break;
            }
        }
    }

    //商品添加到购物车功能
    public static void addGoods(Goods[] shopCar, Scanner sc) {
        //1.录入用户输入的购买商品的信息
        System.out.println("请您输入购买商品的编号(不重复):");
        int id = sc.nextInt();
        System.out.println("请您输入商品的名称:");
        String name = sc.next();
        System.out.println("请您输入购买商品的数量:");
        int buyNumber = sc.nextInt();
        System.out.println("请您输入购买商品的价格:");
        double price = sc.nextDouble();

        //2.把购买商品的商品信息封装成一个商品对象
        Goods good = new Goods();
        good.id = id;
        good.buyNumber = buyNumber;
        good.name = name;
        good.price = price;

        //3.把商品对象添加到购物车数组中去
        for (int i = 0; i < shopCar.length; i++) {
            if (shopCar[i] == null) {
                //说明此位置没有元素存入,把我们新买的商品添加到此处即可;
                shopCar[i] = good;
                break;  //结束
            }
        }
        System.out.println("您的商品:" + good.name + "添加到购物车");
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773584.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号