2021-09-10

第一天

Java 是一种面向对象的程序设计语言。面向对象技术是一种数据抽象和信息隐藏的技术,它使软件的开发更加简单化,符合人们的思维习惯,同时又能降低软件的复杂性,提高软件的生产效率。

传统的面向过程编程语言(如 C 语言)是以过程为中心,以算法为驱动,而面向对象的编程语言是以对象为中心,以消息为驱动。

几乎所有的面向对象程序设计语言都有3个特性——封装、继承、多态。

封装

封装性是面向对象的核心思想。将面向对象的属性和方法封装起来,不需要让外界知道具体的实现的细节,这就是封装的思想。

封装可以使数据的安全性得到保证。

属性的封装。 Java🀄️,想要隐藏类的属性或方法,就可以加 private 修饰符来限制只能在类的内部进行访问。对于类🀄️的私有属性,要对其给出一对方法( getXXX()和 setXXX() )访问私有属性,保证对私有属性的操作的安全性。

继承

继承主要是指类与类之间的关系。通过继承,可以效率更高地对原有类的功能进行扩展。

Java 中的继承要使用 extends 关键字,只允许单继承—一个类只能有一个父类,这样的关系呈树状。

子类只能继承在父类中可以访问的属性和方法,实际上父类中私有的属性和方法也会被子类继承,只是子类访问不到。这里父类可以使用 protected 修饰符。

多态

多态是把子类型的对象主观地看作其父类型的对象,那么父类型就可以是很多类型。

多态有以下特征:对象实例确定后不可改变(客观);只能调用编译时类型所定义的方法;运行时会根据运行时类型去调用相应类型🀄️定义的方法。

类和对象

将具有相同属性及相同行为的一组对象称为类。

类是一个单独的单位,它有一个类名,其内部包括用于描述对象属性的成员变量和用于描述对象行为的成员方法。

[标识符] class 类名 
//标识符可以是 public private protected 或者完全省略
//类名类名应该由一个或多个有意义的单词,每个单词首字母大写,单词之间不要使用任何分隔符。
{
    类的成员变量
    类的方法
}

类是创建Java的模版。

public class Dog{
//局部变量。在方法、构造方法或者语句块🀄️定义的变量。声明和初始化都在方法🀄️,方法结束后,变量就会自动销毁。

//成员变量。定义在类中、方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中的方法、构造方法和特定类的语句块访问。

//类变量。声明在类中、方法体之外,但必须声明为static类型。
    String name;
    int age;
    String color;
    void barking(){
        
    }
    void  hungry(){
    
    }
    //一个类可以拥有多个方法。
}

类方法应用实例

class Person {
    String name;
    int age;
    void setName(String names){
        name = names;
    }
    void setAge(int ages){
        age = ages;
    }
    void speak(){
        System.out.println(My name is ” + name +, 今年 ” + age +” 岁。”);
    }
}
public class Test {
    public static void main(String[] args){
        Person p = new Person();
        p.setName(Yu);
        p.setAge(18);
        p.speak();
    }
}

构造方法

在创建类对象时,对类中的所有成员都需要初始化,赋值过程比较麻烦。如果在对象最初被创建时就完成对其成员变量的初始化,程序将更加简洁。Java允许对象在创建时进行初始化,初始化是通过构造方法来完成的。

  • 构造方法的名称必须与类的名称完成相同。
  • 构造方法不返回任何数据,也不需要使用 void 关键字声明。
  • 构造方法的作用是创建对象并初始化成员变量。
  • 在创建构造方法时,系统会自动调用类的构造方法
  • 构造方法一般使用public关键字声明。
  • 每个类至少有一个构造方法。如果不定义构造方法,Java将提供一个默认的不带参数且方法体为空的构造方法。
  • 构造方法也可以重载
class Person {String name;int age;public Person(String name, int age) { //定义构造方法,使用和类相同的名字,有两个参数
             this.name = name;this.age = age;}void speak() {//方法通常以小写字母开始,而构造方法通常以大写字母开始。构造方法通常是一个名词,因为它和类名相同;而方法通常是动词,因为它说明一个操作。
             System.out.println("我叫" + name + ",今年" + age + "岁。");}}public class Test {public static void main(String[] args) {Person p1 = new Person("张三", 18);//根据构造方法,必须含有两个参数,如果不写会报错
             //为了避免这种情况,应该再添加一种无参数的构造方法:public Person() { }
             //也就是说,如果自定义了构造方法,为了避免出错
             //应该定义一个无参数的构造方法,这样也实现了构造方法的重载
             p1.speak();}}

对象

对象是根据类创建的。在 Java🀄️,使用关键字 🆕 来创建一个新的对象。

(1) 声明。声明一个对象,包括对象名称和对象类型。
(2)实例化。使用 🆕 创建
(3)初始化。使用 🆕 创建对象时,会🦅用🐶🛁方法初🔟🌼对🦣。

对象是对类的实例化。 在 Java 的世界里“一切皆对象”,面向对象的核心就是对象。

类名 对象名 = new 类名(); //实例化对象
对象名.属性名
对象名.方法名() //访问对象的成员变量或方法格式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值