成员变量

设计一个汽车类,包含一个表示速度的成员变量,表示启动,加速,刹车的方法,再设计一个公共汽车类继承自汽车类,需要有表示乘客数量的成员变量,另外定义乘客上车和下车方法,编写测试这两个类的使用

断了今生、忘了曾经 提交于 2020-01-18 20:29:14
设计一个汽车类,包含一个表示速度的成员变量,表示启动,加速,刹车的方法,再设计一个公共汽车类继承自汽车类,需要有表示乘客数量的成员变量,另外定义乘客上车和下车方法,编写测试这两个类的使用。 (本程序比较简单,主要用来理解子类和继承,方法大家可以自己定义!) (1)编写Car父类,定义变量和方法,如下图所示: package day1; public class Car { public double speed; public void start() { System.out.println("车辆开始启动!"); } public void speedUp() { System.out.println("车辆开始加速!"); } public void stop() { System.out.println("车辆开始刹车!"); } } (2)编写publicCar类继承Car,代码如下图所示: package day1; public class publicCar extends Car { int number; void getIn() { System.out.println("乘客上车!"); } void getOff() { System.out.println("乘客下车!"); } public static void main(String[] args

Java面向对象概述和三大特性

◇◆丶佛笑我妖孽 提交于 2020-01-18 14:55:37
  Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案。   本文主要围绕这三大特性介绍一下 Java 面向对象、组件解耦的核心思想。 1、面向对象思想   面向对象编程是当今主流的程序设计思想,已经取代了过程化程序开发技术,Java 是完全面向对象编程语言,所以必须熟悉面向对象才能够编写 Java 程序。   面向对象的程序核心是由对象组成的,每个对象包含着对用户公开的特定功能和隐藏的实现部分。程序中的很多对象来自 JDK 标准库,而更多的类需要我们程序员自定义。   从理论上讲,只要对象能够实现业务功能,其具体的实现细节不必特别关心。   面向对象有以下特点:   (1)面向对象是一种常见的思想,比较符合人们的思考习惯;   (2)面向对象可以将复杂的业务逻辑简单化,增强代码复用性;   (3)面向对象具有抽象、封装、继承、多态等特性。   面向对象的编程语言主要有:C++、Java、C#等。 2、类和对象的关系    类:   对某类事物的普遍一致性特征、功能的抽象、描述和封装,是构造对象的模版或蓝图,用 Java 编写的代码都会在某些类的内部。类之间主要有:依赖、聚合、继承等关系。   

python 内建函数专题

ε祈祈猫儿з 提交于 2020-01-18 11:19:39
all 用来控制 import , 甚至可以改变 _private 为 public enter , exit 用于上下文管理器 iter 用于迭代器 repr 给计算机读, str ==》 str 给人读 len ==》 len obj: ['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__'] 重写 + >>> class Number(object): ... def __init__(self,value): ... self.value = value ... def __add__(self,other): ... return self.value+other.value ... >>> Number(3)+Number(4) 7 实现类似字典操作 >>> class

简单模拟IOC容器:为添加了@Autowired的属性赋值(初始值)

帅比萌擦擦* 提交于 2020-01-17 23:53:01
创建@Autowired注解 package com.zzj.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //设置范围和生存周期 @Target({ElementType.TYPE,ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface Autowired { } 创建UserInfo并且为添加了@Autowired的成员变量赋值 package com.zzj.test; import java.lang.reflect.Field; import java.util.Date; //UserInfo类含有两个成员变量 class UserInfo{ @Autowired private Date birth; @Autowired private String name; public Date getBirth() { return birth; } public void setBirth(Date

封装

自闭症网瘾萝莉.ら 提交于 2020-01-17 23:52:23
封装 概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 原则 将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。 封装的步骤 使用 private 关键字来修饰成员变量。 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。 封装的操作——private关键字 private的含义 1.private是一个权限修饰符,代表最小权限。 2.可以修饰成员变量和成员方法。 3.被private修饰后的成员变量和成员方法,只在本类中才能访问。 private的使用格式 private 数据类型 变量名 ; 使用 private 修饰成员变量,代码如下: public class Student { private String name; private int age; } 提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下: public class Student { private String name; private int age; public void setName(String

java:final详解

£可爱£侵袭症+ 提交于 2020-01-17 02:31:22
final基础使用 修饰类 当某个类的整体定义为final时,就表明了你不能打算继承该类,而且也不允许别人这么做。即这个类是不能有子类的。 注意:final类中的所有方法都隐式为final,因为无法覆盖他们,所以在final类中给任何方法添加final关键字是没有任何意义的。 这里顺道说说final类型的类如何拓展? 比如String是final类型,我们想写个MyString复用所有String中方法,同时增加一个新的toMyString()的方法,应该如何做? 设计模式中最重要的两种关系,一种是继承/实现;另外一种是组合关系。所以当遇到不能用继承的(final修饰的类),应该考虑用组合, 如下代码大概写个组合实现的意思: class MyString { private String innerString ; // ...init & other methods // 支持老的方法 public int length ( ) { return innerString . length ( ) ; // 通过innerString调用老的方法 } // 添加新方法 public String toMyString ( ) { //... } } 修饰方法 常规的使用就不说了,这里说下: private 方法是隐式的final final方法是可以被重载的 private

Java 基础笔记 关于局部变量和类成员变量和父类成员变量重名时的调用问题

狂风中的少年 提交于 2020-01-16 03:40:43
用局部变量:直接写成员变量名 用本类的成员变量:this.成员变量名 用父类的成员变量:super.成员变量名 例子:↓ Father:父类中定义了 int num=10; Child extends Father:子类继承父类,并且自有成员变量 int num=20; public class Child extends Father{ int num=20; public void method(){ int num=30; //此时父类成员变量、子类成员变量、子类方法中的局部变量三者重名 System.out.println(num); //输出30,此时调用的是局部变量num System.out.println(this.num); //输出20,此时调用的是子类成员变量num System.out.println(super.num); //输出10,此时调用的是父类成员变量num } } 来源: CSDN 作者: 一名小白的进阶之路 链接: https://blog.csdn.net/qq_40275740/article/details/103994909

day09_继承、super、this、抽象类

谁说我不能喝 提交于 2020-01-15 07:19:44
继承 由来 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那一个类即可。如图所示: 其中,多个类可以称为子类,单独那一个类称为父类、超类(superclass)或者基类。 继承描述的是事物之间的所属关系, 这种关系是: is-a 的关系。 例如,图中兔子属于食草动物,食草动物属于动物。可见,父类更通用,子类更具体。我们通过继承,可以使多种事物之间形成一种关系体系。 在继承的关系中,“子类就是一个父类”。也就是说,子类可以被当做父类看待。 定义 继承: 就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。 好处 提高代码的复用性。 类与类之间产生了关系,是多态的前提。 继承的格式 通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下: 继承演示,代码如下 定义父类 package demo01; class Employee { // 定义name属性 String name; // 定义员工的工作方法 public void work() { System.out.println("尽心尽力地工作"); } } 定义子类 package demo01; /** * 定义讲师类Teacher 继承 员工类Employee */

Java中private、public、static、protetced、abstract、final

岁酱吖の 提交于 2020-01-14 19:57:01
abstract (抽象的) 1.abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法.抽象类不一定有抽象方法,但拥有抽象方法的一定是抽象类; 2.被abstract修饰的类不能直接实例化,需要通过子类实现,所有抽象类一定有子类. 3.继承抽象类的子类必须重写抽象类中的被abstract修饰的抽象方法,如果不继承就必须把自己变成抽象的子类. final (最终的) final可以修饰类,成员变量,成员方法,局部变量/形参. 2.final 修饰的类不能被继承; 3.final修饰的方法不能被重写. 4.final修饰的成员变量是常量,必须在定义时就给值,并且不能改变,不能被重新赋值. 5.final修饰的局部变量、形参只能接受一次赋值,一旦赋值成功,不能重新复制. static(静态的) 1.static可以修饰成员变量,成员方法;被static修饰的会被当前类的所有对象共享. 2.static修饰的成员变量和成员方法会被放在jvm的静态方法区中,随着类记载,可以使用类名或引用调用. 3.static修饰的成员方法只能调用static修饰的成员变量 private(私有的) 1.private可以修饰成员变量和成员方法; 2.被private修饰成员变量和成员方法; 3.被private修饰成员方法不能被重写

java类中的static成员变量和static方法简单介绍,持续补充

萝らか妹 提交于 2020-01-14 10:12:24
一.静态成员变量 1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用。   2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收 二.静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员; 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量   2. 在普通成员方法中,则可以直接访问同类的非静态变量和静态变量   3. 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法 注: 静态方法是属于类的,内存必须为它分配内存空间,这个空间一直由静态方法占用,内存管理器不会由于静态方法没有被调用而将静态方法的存储空间收回,这样如果将所有的方法都声明为静态方法,就会占用大量的内存空间,最后是系统变慢。而普通的成员方法是由对象调用的,内存并不会一直为起分配内存,只有调用的时候才为其分配存储空间,而当其没有被调用时,存储空间就会被内存管理其收回,释放没有用的空间,提高的系统的运行速率 三.初始化块和静态初始化块 1.为什么要有初始化?   答:初始化块就是构造器的补充,初始化块是不能接收任何参数的,定义的一些所有对象共有的属性、方法等内容时就可以用初始化块初始化了     好处是可以提高初始化块的复用,提高整个应用的可维护性  2