0

0

Java04

高洛峰

高洛峰

发布时间:2016-10-10 09:00:09

|

2486人浏览过

|

来源于php中文网

原创

0.面向对象(object oriented:oo):

    0、OOA(面向对象分析) OOD(面向对象的设计) OOP(面向对象编程)

    1、是软件开发方法

    2、扩展的领域:数据库系统、交互式界面、应用平台、分布式系统、人工智能等领域

    3、是一种对现实世界的理解和抽象的方法,是计算机编程技术发展到一定阶段的产物

立即学习Java免费学习笔记(深入)”;

 

造梦阁AI
造梦阁AI

AI小说推文一键成片,你的故事值得被看见

下载

1.类和对象的基本概念

    1.类:类是对具有相似性质的一类事物的抽象,类封装了相似性质事物的属性(特征)和方法(行为)   (即类的成员)

    2.对象:对象是一类事物中具体的个体

    3.类——对象    关系参考     种群——个体

 

    4.类的构成:零个或多个成员变量  零个或多个方法  零个或多个构造器

        成员变量:定义该类或该类的实例所包含的状态数据

        方法:用来定义该类或该类的实例的行为特征或者功能实现

        构造器:用于构造该类的实例(关于构造器后面会着重讲解)

    5.对象的产生和使用:

        创建创建出来后就可以使用了,Java的对象大致有如下作用:访问对象的实例变量和调用对象的方法

        创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可以创建这个类的实例(对象)

        对象名.实例变量|方法

        类名.类变量|方法

    6.一般实体类例子  Dog.java ; 对象的声明和创建; 程序入口类(主类),带有main方法的类

 

    7.一个人(张三)在街上散步,遇到一条狗(大黄),狗(大黄)咬了人(张三),人(张三)打了狗(大黄),狗(大黄)跑了~!

package Chapter7_2;
//Dog类的申明
public class Dog {
          String name;
          public void beatPersion(People p){
                   System.out.println(name+"咬了"+p.name);
          }
          public void dogRun(){
                   System.out.println(name+"跑了......");
          }
}
 
 
 
package Chapter7_2;
//People类的申明
public class People {
          String name;
          public void walk(){
                   System.out.println(name+"街上散步");
          }
          public void meetDog(Dog dog){
                   System.out.println(name+"遇到"+dog.name);
          }
          public void beatDog(Dog dog){
                   System.out.println(name+"打了"+dog.name);
          }
}
 
 
package Chapter7_2;
//主类
public class DogAndPeople {
 
          public static void main(String[] args) {
                   People peo=new People();
                   Dog dog =new Dog();
                   peo.name="张三";
                   dog.name="大黄";
                   peo.walk();
                   peo.meetDog(dog);
                   dog.beatPersion(peo);
                   peo.beatDog(dog);
                   dog.dogRun();
          }
 
}

2.练习: Car类,描述汽车的属性(品牌mark、排量power、颜色color、价格price)

    和方法(启动start、加速speedup、正常行驶run,碰到hit(人))

         写一个People类,有属性(姓名name、性别sex、年龄age)、

         方法(驾驶drive(car),以Car类对象为参数),

            在主类中

        1)让一个人张三驾驶一辆宝马车在街上飞奔

        2)碰到了一个叫做李四的人

package Chapter7_3;
//定义Car类
public class Car {
          String mark;
          int power;
          String color;
          int price;
 
          public void start(People p) {
                   System.out.println(p.name + "启动了"+mark);
          }
          public void speedUp(){
                   System.out.println(mark+"加速");
          }
          public void run(){
                   System.out.println(mark+"正常行驶");
          }
          public void hit(People p){
                   System.out.println(mark+"撞了"+p.name);
          }
}
package Chapter7_3;
//People类申明
public class People {
          String name ;
          char sex;
          short age;
          public void dirve(Car car){
                   System.out.println(name+"驾驶"+car.mark);
          }
 
}

package Chapter7_3;
//主类
public class CarAndPerple {
public static void main(String[] args) {
          Car car=new Car();
          People p1=new People();
          People p2=new People();
          car.color="black";
          car.mark="宝马";
          car.power=123;
          car.price=123143;
          p1.age=20;
          p1.name="张三";
          p1.sex='m';
          p2.age=21;
          p2.name="李四";
          p2.sex='m';
          car.start(p1);
          car.speedUp();
          p1.dirve(car);
          car.run();
          car.hit(p2);
}
}

3.类和对象的使用总结

    1.抽象出具有相似特征(属性)和行为(方法)的一类事物封装到类里

    2.根据业务需要实例化(new)出具体的对象

    3.对对象进行初始化赋值,以便得到具体对象的特征

    4.根据业务需要组合对象之间的行为(方法)   

 

 

4.成员变量和局部变量

    1.成员变量定义在类中,方法的外面;又叫全局变量,有效作用域是整个类体

    2.局部变量定义在方法里面,作用域是方法内部

    3.当局部变量和成员变量名字相同的时候,成员变量在该局部变量所在的方法中被隐藏。如果需要在这个方法里使用被隐藏的全局(成员)变量,需要使用this关键字

        this:如果局部变量和成员变量同名,可以在局部变量所在的代码块里调用成员变量

 

 

5.关于方法的设计

    1.方法的所属性

    2.方法的组成  :访问修饰符  返回值  方法名  方法参数列表

    3.重载:方法重载是指一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。           

    练习:简易计算器(能实现两个、三个、四个数的加)

 

 

 

6.构造方法(构造器)

 

    1.什么是构造方法?有何特点?

    2.构造方法的作用?

    3.构造方法何时被调用?

    例子:7

    练习:8

 

    4.构造方法可以重载吗?

    5.其他说明:

        构造器是创建对象的重要途径,一个类中至少要包含一个构造器

        程序员如果不给一个类加构造器,则系统会默认添加一个没有参数的构造器

 

 

7.示例:建立一个学生类,有学号、姓名、年龄、性别属性,有描述个人信息的方法,通过键盘输入获取两个学生的信息,并且打印出描述信息

8.构建一个员工信息类(Employee),有员工编号、员工姓名、性别、年龄、工龄、工资等属性,有工作和休息的方法,还有打印自身信息的方法;

     在入口类中通过键盘输入,获取两个员工的对象,要求通过带参数的构造方法来进行成员变量的初始化。然后根据输入星期几,来输出员工当前的状态(周一至周五工作、周六和周日休息)

package Chapter8_2;
//所有类与方法在同一个文件中
import java.util.Scanner;
 
public class Staff {
          int number;
          String name;
          char sex;
          short age;
          short w_age;
          long mon;
 
          public Staff(String name, int number, char sex, short age, short w_age,
                             long mon) {
 
                   this.name = name;
                   this.number = number;
                   this.sex = sex;
                   this.age = age;
                   this.w_age = w_age;
                   this.mon = mon;
 
          }
 
          public void rest() {
                   System.out.println(name + "今天休息");
          }
 
          public void work() {
                   System.out.println(name + "今天工作");
          }
 
          public void printSelf() {
                   System.out.println(name + "\t" +number+"\t" +sex + "\t" + age + "\t" + w_age + "\t"
                                      + mon + "\t");
          }
 
          public static void main(String[] args) {
                   Scanner scan = new Scanner(System.in);
                   System.out.println("请输入第一个员工的信息:姓名,工号,性别,年龄,工龄,工资");
                   String name = scan.next();
                   int number = scan.nextInt();
                   char sex = scan.next().charAt(0);
                   short age = scan.nextShort();
                   short w_age = scan.nextShort();
                   long mon = scan.nextLong();
                   Staff sta = new Staff(name, number, sex, age, w_age, mon);
                   System.out.println("今天星期几");
                   short day = scan.nextShort();
                   if (day < 6) {
                             sta.work();
                   } else if (day >= 6 && day <= 7) {
                             sta.rest();
                   } else {
                             System.out.println("error!");
                   }
                   System.out.println("员工信息如下");
                   System.out.println("姓名"+"\t"+"工号"+"\t"+"性别"+"\t"+"年龄"+"\t"+"工龄"+"\t"+"工资");
                   sta.printSelf();
          }
 
}

9.变量、方法的分类:

 

    内存的分配:栈内存  堆内存

    创建对象时,通过new关键字调用构造函数,返回当前类的对象:People p=new People();

    对象里有成员变量,会在堆内存中开辟连续的空间存储成员变量。

    p是People类型的引用,p存储在栈内存中,它指向堆内存中的对象

 

    这种引用就是C语言中的指针,只是Java语言把这个指针封装了起来

 

    变量:成员变量   局部变量

        成员变量:类变量(有static关键字修饰) 和 实例变量(没有static关键字修饰)

        局部变量:形参、方法内的变量、代码块的变量

 

    方法:类方法(有static关键字修饰)、实例方法(没有static关键字修饰)

 

    java中类的生命周期:加载(Loading)-->验证(Verification)-->准备(Preparation)-->解析(Resolution)-->

                初始化(Initialization)-->使用(Using)-->卸载(Unloadling)

 

    1、类变量和实例变量的区别:类变量共享 ,类变量在类加载时分配入内存;实例变量每个对象独有 ,实例变量在类初始化的时候分配内存。

    2、类方法和实例方法的区别:类方法在类加载时分配入口地址;实例方法在类初始化时分配入口地址 (创建第一个对象时)

 

    3、访问和调用规则:

        1、实例方法既能能访问实例变量又能访问类变量

        2、类方法只能访问类变量

        3、实例方法能调用类方法,但是类方法只能调用类方法

 

10.对象默认初始化

 

11.总结

    1.类的概念、对象的概念;通过群体和个体的概念理解类和对象的关系

    2.类的成员包括—— 属性、方法 (有啥,能干啥)

    3.方法的设计

        a.方法名首字母小写;望文生义;多个单词组成的方法名首字母小写,第二个单词开始首字母大写

        b.返回类型

        c.方法的重载(参数的不同,要么参数个数不同,要么参数类型不同)

    4.成员变量和局部变量的区别;this关键字的作用(this相当于对象自身的意思)

    5.关于构造方法

        a.每一个类都有构造方法,不写不代表没有(默认无参的构造方法)

        b.构造函数与new关键字息息相关,直接决定了对象的构成方式

        c.带参数构造方法的常用方式(给成员变量进行赋值)

    6.实例变量和类变量、实例方法和类方法;关键字static

13.作业

    1.比较大小:写一个有两个int型的参数的方法,要求方法能够比较这两个参数的大小,并且返回比较大的一个,在另外一个类里使用这个方法。

 

    2.判断 :在一个类里有一个方法,能判断给定的参数是否为偶数,如果是偶数返回true,否则返回false。在另一个类里调用该方法。

 

    3.写一个方法,有三个参数,分别为三个线段的长度,判断三条线段是否能组成一个三角形,如果能返回true,否则返回false。在另一个类中使用

 

    4.写一个三个参数的方法,判断给定的三个参数能否构成直角三角形。另一个类里使用。

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

6

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

37

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

51

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

8

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

20

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号