java基礎---類和對象


1.面向對象

Java是面向對象的程序設計語言,除了8中簡單類型外,都屬於對象

面向對象的語言會有明顯的三個特征:封裝、繼承、多態

注意:Java其實不算完全面向對象,因為有8種簡單類型的存在

2.面向對象的語言有哪些

java 、ython、c++

3.面向對象(OO)的優點

1)與人類的思維習慣一致(觀察事物得出結論,用程序的形式寫出)

2)信息隱藏,提高了程序的可維護性和安全性(封裝)

3)提高了程序的可重用性(多態和繼承)

4.什么是類?什么是對象?

貓科動物屬於一個類,獅子老虎屬於對象。

類就是邏輯概念當中,現實當中內存當中並不存在的;對象是會占內存,實實在在用到的東西

類相當於生產汽車的一張圖紙,對象相當於根據圖紙生產出來的車

類和對象是一對多;對象只屬於一個類。

5.類的概念

1.類是對一群具有相同屬性、表現相同行為的對象的抽象

2.類確定對象將會擁有的屬性和行為,它定義了一種對象所擁有的數據和所能完成的操作。

3.在面向對象程序設計中,類是程序的基本單元。程序中的對象是類的實例 。對象是通過類創建的

 

車的文字描述

靜態特征:車名、車身顏色等

動態特征:能前進、能倒退

對車這個類型的靜態特征描述為類里的屬性,對車類的動作描述,是類里的方法

類有兩個基本元素:屬性和方法

6.定義類(定義一個類的步驟)

定義類名、編寫類的屬性、編寫類的方法

7.類的創建

成員變量描述靜態特征,放置在類塊中的任何位置,通常書寫在類的開始處。

成員方法描述動態特征,放置在類塊中的任何位置,通常書寫在成員變量之后

public class Car {

/*

 * 1-屬性field  

 * 2-訪問控制符(public)

 * 3-類型(String)  名字  首字母小寫  myFirstDog

   *

 */

public String color;

public String name;

/*2-方法 method

 *public void method(){

 *}

 **/

public void forward(){

System.out.println("前進"+color);

}

public void backward(){

System.out.println("后退"+name);

}

}  

8.對象的創建?

public class CarTest {

public static void main(String[] args) {

// 1-new 一個對象 類 對象

Car aodi=new Car();

// 屬性和方法  filed method

    aodi.color="green"; //屬性賦值

    aodi.name="A60";

    //method

    aodi.forward();     //方法調用

    aodi.backward();

    //打印屬性

    System.out.println(aodi.color);

    System.out.println(aodi.name);

}  

}

練習:創建和使用對象

編寫學員類,輸出學員相關信息

編寫教員類,輸出教員相關信息

public class Student {

    //學生實體類

public String name;

public int age;

public String clazz;

public String hobby;

   //顯示學員信息

    public void info(){

     System.out.println("姓名"+name+"年齡"+age+"班級"+clazz+"愛好"+hobby);

    }

}

public class Teacher {

//教師實體類

public String name;

public String course;

public String major;

public int teachingAges;

public void info() {

//顯示教員信息

System.out.println("姓名"+name+"課程"+course+"主修"+major+"教齡"+teachingAges);

}

}

public class Test {

測試類

public static void main(String[] args) {

Student xiaoming=new Student();

xiaoming.name="小米";

xiaoming.age=25;

xiaoming.clazz="3年2班";

xiaoming.hobby="LOL";

 

Teacher xiaohon=new Teacher();

xiaohon.name="小紅";

xiaohon.course="java";

xiaohon.major="軟工";

xiaohon.teachingAges=10;

 

xiaoming.info();

xiaohon.info();

}

}

9.對象的概念?

根據圖紙生產出來的車。

類是對事物屬性行為的概括描述,對象就是符合類描述的具體事物。

所以一個對象必須屬於某個類,一個類可以有多個具體對象。

10.對象的創建

用關鍵字new來創建對象。new的作用是為對象新開辟一片內存空間

對象的銷毀

Java垃圾收集機制)當對象不存在引用時,它就會被java自動銷毀。

11.對象的內存分析(棧內存、堆內存)  

new一個對象會在堆內存申請一個空間,堆內存的房間號存在棧內存中,棧內存存放的是並不是對象而是對象所在堆內存的房間的地址。

堆內存放的是真是對象的實體,棧內存放的是堆內存的地址

例:int a=10;開劈a的空間

int b=a; 開劈b的空間

b=100;   b的值改變,a的值不變

2:

Student s1=new Student(); 申請空間

S1.name=”1”;              對象名字為1

Student s2=s1;              s2在棧內存中申請了空間,把s1的堆內存的地址放了進去

S2=name=”2”;

S1.name?  S2.name?          放着的是同一把鑰匙

 打印倆個2

12.引用類型變量

引用賦值

例如:我們有Student類

 Student s = new Student();

 Student s2 = s; //引用賦值

 同一類型的倆個引用變量指向了同一個對象

練習:定義管理員類、定義客戶類

定義管理員類

訓練要點

n類的屬性:名字,密碼

n定義類的方法:show() 顯示信息

n需求說明

n編寫管理員類

n實現思路

1. 定義管理員類Administrator

2. 定義其屬性和方法

public class Administrator {

//定義一個類

//類的屬性

public String name;

public String password;

//2-方法 method

public void show(){

System.out.println("管理員"+name+"密碼"+password);

}

}

 

定義客戶類

需求說明

n 編寫客戶類

n屬性:積分、卡類型

n方法show():顯示客戶信息(顯示積分、卡類型)

定義客戶類Customer

定義屬性和方法

public class Customer {

//類

public int points;

public String type;

public void show() {

System.out.println("顯示積分"+points+"卡類型"+type);

}

}

 

創建管理員對象

訓練要點

n使用類創建對象

n引用對象的屬性和方法

n需求說明

n創建兩個管理員類對象,輸出他們的相關信息

n實現思路

1、創建兩個管理員類的對象

2、給兩個對象賦值並調用

顯示方法

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

//編寫管理員對象

Administrator admin1=new Administrator();

admin1.name="admin";

admin1.password="123456";

Administrator admin2=new Administrator();

admin2.name="admin1";

admin2.password="123456";

admin1.show();

boolean isTrue=true;

}

}

 

更改管理員密碼

訓練要點

n使用類創建對象

nwhile循環

n需求說明

n輸入舊的用戶名和密碼,如果正確,方有權限更新

n從鍵盤獲取新的密碼,進行更新

import java.util.Scanner;

 

 

public class Test1 {

public static void main(String[] args) {

//編寫管理員對象

Administrator admin1=new Administrator();

admin1.name="admin";

admin1.password="123456";

Administrator admin2=new Administrator();

admin2.name="admin1";

admin2.password="123456";

admin1.show();

boolean isTrue=true;

while (isTrue) {

Scanner input=new Scanner(System.in);

System.out.println("請輸入管理員賬號");

String uname=input.next();

System.out.println("請輸入管理員密碼");

String pwd=input.next();

if (uname.equals(admin1.name)&&pwd.equals(admin1.password)) {

System.out.println("新密碼");

      String newPwd=input.next();

      admin1.password=newPwd;

      System.out.println("修改密碼成功");

        isTrue=false;

}else{

System.out.println("用戶名或密碼不對,重新輸入");

// isTrue=true;

}

}   

}

}

 

 

客戶積分回饋

需求說明

n實現積分回饋功能

n金卡客戶積分大於1000分或普卡客戶積分大於5000,獲得回饋積分500分

n創建客戶對象輸出他得到的回饋積分

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

    Scanner input=new Scanner(System.in);

    Customer c=new Customer();

    System.out.println("請輸入卡的類型");

    c.type=input.next();

    System.out.println("請輸入積分");

    c.points=input.nextInt();

    if ((c.equals("金卡")&&c.points>1000)||(c.type.equals("普卡")&&c.points>5000)) {

System.out.println("獲得500積分");

}else{

System.out.println("對不起,您的條件不足");

}     

}

}

練習:創建和使用對象

 一個景區根據游人的年齡收取不同價格的門票。請編寫游人類,根據年齡段決定能夠購買的門票價格並輸出

public class Test3_youren {

      public String name;

      public int age;  

      public void info(){

       System.out.println("姓名"+name+"年齡"+age);

      }

}

 

import java.util.Scanner;

public class Test3 {

public static void main(String[] args) {

Scanner input=new Scanner(System.in);

Scanner onput=new Scanner(System.in);

Test3_youren c=new Test3_youren();

Test3_menpiao d=new Test3_menpiao();

System.out.println("請輸入姓名");

c.name=input.next();

System.out.println("請輸入年齡");

c.age=input.nextInt();

    if(c.age<18){

      c.info();

 System.out.println("門票免費");

    }else{

     c.info();

     System.out.println("支付20元門票");

    }

}   

}

作業:10道題(14天)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM