java基础--第七天

1:Java中的参数传递问题。(理解内存图)

  基本类型:形式参数的改变对实际参数没有影响。

  引用类型:形式参数的改变直接影响实际参数。

2:面向对象

  (1)面向对象:是基于面向过程的一种思想。

    面向过程:以函数为基础,关注实现过程。

    面向对象:以对象为基础,关注实现结果。

  (2)面向对象的思想特点:

    A:是一种更符合人们思考习惯的思想。

    B:把复杂的事情简单化了。

    C:把我们从执行者变成了指挥者。

    举例:

      买电脑。洗衣,做饭。旅游。把大象装进冰箱。[代码体现]

 1 /*
 2     将大象装进冰箱
 3 */
 4 class DaXiang {
 5     public  void in(){
 6         System.out.println("大象送进冰箱");
 7     }
 8 }
 9 class BingXiang{
10     public static void open(){
11         System.out.println("打开冰箱");
12     }
13
14     public static void close(){
15         System.out.println("关闭冰箱");
16     }
17 }
18 class TestDemo{
19     public static void main(String[] args) {
20
21         open();
22         in();
23         close();
24
25         System.out.println("----------------");
26
27         BingXiang bingXiang = new BingXiang();
28         bingXiang.open();
29         new DaXiang().in();//匿名调用
30         bingXiang.close(); //BingXiang类不可用匿名类,效果可以出来,但是是两个类
31     }
32             //面向过程
33         public static void open(){
34             System.out.println("打开冰箱");
35         }
36
37         public static void close(){
38             System.out.println("关闭冰箱");
39         }
40
41         public static void in(){
42             System.out.println("大象送进冰箱");
43         }
44 }

  (3)事物是如何体现的呢?

    A:属性 有哪些特征

    B:行为 有哪些功能

  (4)类与对象的关系:

    把事物转换成类:

      A:成员变量

        定义在类中,方法外。

      B:成员方法

        和以前的区别是去掉static。

    类:是相关的属性和行为的集合。是一个抽象的概念。

    对象:是某种事物的具体存在,具体的表现形式。

    举例:

      类:学生      对象:张三

  (5)案例:

    A:学生类

 1 /*
 2     测试类Student的使用,简单应用类中成员变量和成员函数
 3 */
 4 class Student
 5 {
 6     //姓名
 7     String name;
 8     //年龄
 9     int age;                        //年龄范围可以用更小,但是Java进行自我内存管理,
10                                     //且short/byte类型数据会自动提升为int类型
11     //性别
12     char sex;
13
14
15     //学习的方法
16     public void study()
17     {
18         System.out.println("学生学习");
19     }
20     //吃饭的方法
21     public void eat()
22     {
23         System.out.println("学生吃饭");
24     }
25         //睡觉的方法
26     public void sleep()
27     {
28         System.out.println("学生睡觉");
29     }
30 }
31
32 class StudentTest
33 {
34     public static void main(String[] args)
35     {
36         //创建对象
37         Student s = new Student();
38         //应用对象属性与方法
39         System.out.println(s.name +"\t"+s.age+"\t"+s.sex);
40         //更改对象属性
41         s.name = "张三";
42         s.age = 24;
43         s.sex = ‘男‘;
44         //应用对象属性与方法
45         System.out.println(s.name +"\t"+s.age+"\t"+s.sex);
46
47         s.study();
48         s.eat();
49         s.sleep();
50     }
51 }

    B:手机类

 1 /*
 2     需求:
 3         属性:品牌(brand)、价格(price)、颜色(color)
 4
 5         行为:打电话(call)、发短信(sendMessage)、玩游戏(playGame)
 6 */
 7 class Phone
 8 {
 9     //品牌(brand)
10     String brand;
11     //价格(price)
12     int price;//考虑当前钱不值钱的情形   ~_~
13     //颜色(color)
14     char color;
15
16     //打电话(call)
17     public void call()    //boolean  最好  call应该有对象
18     {
19         System.out.println("打电话");
20     }
21     //发短信(sendMessage)
22     public boolean sendMessage(String s)
23     {
24         System.out.println("发出信息信息内容");
25         if(s!=null)
26         {
27             System.out.println(s);
28             return true;
29         }
30         else
31             return false;
32     }
33     //玩游戏(playGame)
34     public void playGame()
35     {
36         System.out.println("玩游戏");
37     }
38 }
39
40 class PhoneDemo
41 {
42     public static void main(String[] args)
43     {
44         //属性应用
45         Phone p = new Phone();
46         System.out.println(p.brand+"\t"+p.price+"\t"+p.color);
47         p.brand = "华为";
48         p.price = 1990;
49         p.color = ‘白‘;
50         System.out.println(p.brand+"\t"+p.price+"\t"+p.color);
51
52         //方法应用
53         p.call();
54         boolean right = p.sendMessage("一定要成功!");
55         if(right)
56             System.out.println("发送信息成功!");
57         else
58             System.out.println("发送信息失败!");
59         p.playGame();
60     }
61 }

    C:汽车类(内存图)

 1 /*
 2     需求:汽车:
 3         属性:品牌、价格、颜色
 4         行为:跑、停
 5 */
 6 class Car
 7 {
 8     //品牌
 9     String brand;
10     //价格
11     int price;
12     //颜色
13     String color;
14
15     public void run()
16     {
17         System.out.println("汽车奔跑");
18     }
19
20     public void stop(int num)
21     {
22         if(num>120)
23             System.out.println("汽车停下");
24     }
25 }
26
27 class CarDemo
28 {
29     public static void main(String[] args)
30     {
31         Car car = new Car();
32         System.out.println(car.brand+"\t"+car.price+"\t"+car.color);
33         car.brand = "奔驰";
34         car.price = 1000000;
35         car.color = "红色";
36         System.out.println(car.brand+"\t"+car.price+"\t"+car.color);
37
38         car.run();
39         car.stop(140);
40
41     }
42 }

  (6)如何使用呢?

    A:创建对象

    格式:

      类名 对象名 = new 类名();

    B:使用成员变量和成员方法

      对象名.成员变量    对象名.成员方法

3:匿名对象

  (1)就是没有名字的对象

  (2)应用场景

    A:对对象方法只调用一次;

    B:用对象作为实际参数

时间: 2024-12-14 04:40:11

java基础--第七天的相关文章

复习java基础第七天(反射)

一:目标 Ø理解 Class 类 Ø理解 Java 的类加载机制 Ø学会使用 ClassLoader 进行类加载 Ø理解反射的机制 Ø掌握 Constructor.Method.Field 类的用法 Ø理解并掌握动态代理 1.Class类 –对象照镜子后可以得到的信息:某个类的数据成员名.方法和构造器.某个类到底实现了哪些接口. 对于每个类而言,JRE 都为其保留一个不变的 Class 类型的对象. 一个 Class 对象包含了特定某个类的有关信息. –  Class 对象只能由系统建立对象.

大数据JAVA基础第七天

1.面向对象编程思想:"类"的引入 前面我们学习过数组,当需要多次遍历数组时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性. 在对数组遍历的基础上继续增加需求,比如获取最值,数组逆转等,同样需要将这些功能封装到相应的方法中.这样继续封装会发现方法越来越多,于是就想能不能将这些方法继续进行封装呢? 在前面的学习过程中,我们知道"类"是可以存放方法的(虽然目前还不清楚如何去设计一个完整的类,但最起码知道,类中是可以存放多个方法的)

Java基础(七):重写与重载

一.重写(Override): 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常.例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 I

大数据Java基础第七天作业

第一题: interface IWhite{     public void white(); } interface IRich{     public void rich(); } interface IBeauti{     public void beauti(); } interface IWRB extends IWhite,IRich,IBeauti{}; class RichMan{     public void toMarry(IWRB ws){         ws.whi

java基础第七天_匿名内部类、异常、包和jar

1.利用白富美接口案例,土豪征婚使用匿名内部类对象实现. 2.定义三角形类Trianle,里面包含三个int类型属性,分别表示三条边的长度, 构造三角形对象时,任意两边之和是否大于第三边,如若不成立,抛出自定义异常. 3.Person类中增加birthday属性,对setBirthday(int ,int , int )方法进行异常处理, 要求年有效.月有效.日有效.年月日指定的具体日期有效,对不同情况分别抛出不同的异常. 4.将类定义到指定的包下.com.it18zhang,编译之后,打成ja

java基础第七章

一.理解什么是类和对象 万事万物皆对象 1.属性--对象具有的特征(特点) 2.方法--对象可执行的操作(能干什么事) 3.对象的定义: 是一个客观存在的,看的见或摸得着的实体,由属性和方法构成 4.类是由对象抽象出来的,看不见也摸不着 5.类和对象的关系? 类(是笼统)是模子是对象的抽象化,对象(具体的)是类的具体化 String schoolName; //中心名称 int classNumber; //教室数目 int labNumber; //机房数目 //定义北大青鸟中心的方法 pub

JAVA基础篇七(Java,C++中的线程)

讲到线程,Java的线程目前只知道从thread继承,并用start函数启动线程,稍后会多了解JAVA线程相关知识,补充到这一章中. C++的线程在读硕期间用到过多次,下面首先总结一下: 1.C++线程 (1)MFC多线程 这种方式我没用过,所以这里只是提一下,主要在MFC中,一般用全局函数AfxBeginThread()来创建并初始化一个线程的运行,该函数有两种重载形式,分别用于创建工作者线程和用户界面线程. (2)phtread POSIX线程(POSIX threads),简称Pthrea

Java基础(七)

(一)泛型(1)数组直接定义了存储的类型,防止出现其他类型的元素,集合能不能也像数组一样,直接规定我们集合的存储类型,针对这种情况一种技术:泛型<数据类型> --- 引用数据类型 泛型:将明确的集合类型的工作推迟到了创建对象或者调用方法的时候,属于一种参数化类型,可以作为参数传递.泛型的好处:1)将运行时期异常提前到了编译时期2)优化了设计,解决了×××警告线问题3)避免了强制类型转换 泛型的引出可以提供程序的安全性!(2)将泛型定义在类上在早期的时候,使用Object类型代表任意类型,向上转

java基础第七篇之接口

1.什么是接口: * 接口是方法的集合,而且接口中的方法全是抽象的 * 你可以把接口看成一个特殊的"抽象类",接口中的方法全是抽象的 * * * 2.java中怎么定义接口: * 定义类的关键字:class * 定义接口的关键字:interface * 格式: * public interface 接口名{ * //成员方法 * public abstract void demo01(); * public abstract void demo02(); * } * 接口的方法 必须是