package test;/** * OP:面向对象的简称* 类:同一特征的属性* * 类的定义:具有相同特征和行为的事物的抽象。(不具体化)* 对象(实例对象):具体真实存在的实例。* 类是对象的实例:* * Java中的类主要分为:系统类和自定义类!!!* 例如:String Array(数组) Random(随机数) Scanner(格式化输入)等,都是系统类* 面向过程:重点在于如何实现此功能:* 面向对象:重点能实现此功能的对象如何创建!* 面向对象的优势:在面向对象语言中,系统类会为大家提供许多在内部封装好的功能方法,我们至于要创建对象,并且使用方法即可,无需追究方法内部的实现过程步骤!!* * * public 可见度(三种)。public是公开的任意访问的!*但是不符合面向对象语言的封装特性* 面向对象的三大特性:封装 继承 多态* * protected(继承) 受保护状态,也是默认状态!本类及其子类可以访问,还有和本类同一个package包文件也可以访问!所以安全系数依然不高!* * private(封装) 私有的,仅仅本类可以访问,但是不符合继承特性!* 所以最常见的就是protected和private根据需求,结合使用!* * * * * * class 是创建类的标识* person 类名,我们要求类名的首字母大写!!* * * */public class Person {// 类是具体相同特征和行为的事物的抽象!所以!// 创建类的第一步:特征(也叫作属性)//(受保护)(默认状态)同包可以访问、自己、自己的子类
protected String name;public String sex;//只能在本类中才能访问
private int age;//默认状态为protected受保护状态String address;// 创建类的第二步:行为(也叫作方法)/**public 返回值类型 方法名(参数列表){ } * 如果需要返回值 写对应类型即可!* 如果不需要返回值,直接写void代表返回值为空!!* 参数列表:参数个数不限,可有可无 按要求定义!!*/public void eat() {System.out.println("吃饭!!");}public void sleep() {System.out.println("睡觉!!");}// 程序只走main函数!}package test;public class Main {public static void main(String[] args) {//Person的用法,同Random类似Person p1 = new Person();//调用方法p1.eat();p1.sleep();//给属性赋值p1.name = "王二狗子";
// p1.age = 18;p1.sex = "boy";p1.address = "氪星";//取值System.out.println(p1.name + " " + p1.sex);Person p2 = new Person();p2.name = "李易峰";p2.sex = "boy";p2.address = "中国";System.out.println(p2.name + " " + p2.sex + p2.address);System.out.println();}}package com;import test.Person;public class SQ {public static void main(String[] args) {/*Person p1 = new Person();//sex为publicp1.sex = "男";//name为protectedp1.name = "hjianmaju";//protected默认的p1.address = "zasd";//age为privatep1.age = 19;*/}}
package test;
/*属性如何赋值*/
public class Dog {//创建4个属性,全部私有化private String type;private String name;private String color;private int age;//stter方法-----赋值方法//this关键字,指代调用此方法的对象!!!谁调用this就是谁!/** aType的位置是形参,即形式的参数,没有具体的值,起占位作用:告诉使用者,此位置需要赋一个XX类型的值* * */public void setType(String aType) {this.type =aType;//将形参接收到的值,赋值给属性!因为属性私有无法外部访问!} public void setName(String aName) {this.name = aName;}public void setColor(String color) {this.color = color;}public void setAge(int age) {this.age = age;}public void dogInfo() {System.out.println(type + " " + name + " " + age + " " + color);}//-------------------------------------------------------//取值方法 getter//String 是方法返回值的类型!//在哪调用此方法,返回值就返回在那个位置public String getName() {return name;}public String gettype() {return type;}public int age() {return age;}public String getColor() {return color;}//在Dog类中定义的方法,仅限于Dog类型的对象来调用!//谁开发谁使用!!!//-------------------------------------------------------------------//构造方法(又叫:初始化赋值方法):---------- 一次性给多个属性赋值!//系统默认的格式public Dog() { //无参构造}//public 类名 (参数列表)public Dog (String type,String name,String color,int age) { //有参构造this.name = name;this.type = type;this.color = color;this.age = age;}//方法名一致,但是参数列表不一样!这就是方法的重载
}package test;import java.util.Random;public class Main {public static void main(String[] args) {// Person的用法,同Random类似Person p1 = new Person();// 调用方法p1.eat();p1.sleep();// 给属性赋值p1.name = "王二狗子";
// p1.age = 18;p1.sex = "boy";p1.address = "氪星";// 取值System.out.println(p1.name + " " + p1.sex);Person p2 = new Person();p2.name = "李易峰";p2.sex = "boy";p2.address = "中国";System.out.println(p2.name + " " + p2.sex + " " +p2.address);System.out.println();
//------------------------------------------------Random r = new Random();//一旦创建对象,就会调用构造方法!Dog dog1 = new Dog("欢欢","金毛","白色",2);//有参构造// dog1.name = "小强";name属性在Dog类里面已经定义为私有属性 其他类 不可访问Dog dog2 = new Dog();//无参构造// 使用setter方法间接赋值//方法的调用!此方法中传递的值叫做实参,也就是实际上的真实需要操作的参数值!!//实参会把值传给形参! 并且是单向传递不可逆转!dog1.setType("哈士奇");dog1.setName("小黄");dog1.setAge(3);dog1.setColor("黑白色儿");dog1.dogInfo();//setXxx方法是赋值操作System.out.println(dog1.getName());//getXxx方法是调用取值}}package test;/** * OP:面向对象的简称* 类:同一特征的属性* * 类的定义:具有相同特征和行为的事物的抽象。(不具体化)* 对象(实例对象):具体真实存在的实例。* 类是对象的实例:* * Java中的类主要分为:系统类和自定义类!!!* 例如:String Array(数组) Random(随机数) Scanner(格式化输入)等,都是系统类* 面向过程:重点在于如何实现此功能:* 面向对象:重点能实现此功能的对象如何创建!* 面向对象的优势:在面向对象语言中,系统类会为大家提供许多在内部封装好的功能方法,我们至于要创建对象,并且使用方法即可,无需追究方法内部的实现过程步骤!!* * * public 可见度(三种)。public是公开的任意访问的!*但是不符合面向对象语言的封装特性* 面向对象的三大特性:封装 继承 多态* * protected(继承) 受保护状态,也是默认状态!本类及其子类可以访问,还有和本类同一个package包文件也可以访问!所以安全系数依然不高!* * private(封装) 私有的,仅仅本类可以访问,但是不符合继承特性!* 所以最常见的就是protected和private根据需求,结合使用!* * * * * * class 是创建类的标识* person 类名,我们要求类名的首字母大写!!* * * */public class Person {// 类是具体相同特征和行为的事物的抽象!所以!// 创建类的第一步:特征(也叫作属性)public String name;
public String sex;
public int age;
public String address;// 创建类的第二步:行为(也叫作方法)/**public 返回值类型 方法名(参数列表){ } * 如果需要返回值 写对应类型即可!* 如果不需要返回值,直接写void代表返回值为空!!* 参数列表:参数个数不限,可有可无 按要求定义!!*/public void eat() {System.out.println("吃饭!!");}public void sleep() {System.out.println("睡觉!!");}// 程序只走main函数!}