第二章——Java面向对象(一)——类与对象
程序员文章站
2022-04-15 11:19:49
我是小康小白,一个平平无奇的Java,Python小白。热爱有趣的文字,生活和远方。个人博客:https://blog.csdn.net/weixin_45791445有问题欢迎QQ联系:1059320343 (记得备注CSDN)个人微信公众号:小康小白一,什么是类,如何创建类题目:题目代码:package step1;public class Test {public static void main(String[] args) {//创建Dog对象//设....
我是小康小白,一个平平无奇的Java,Python小白。热爱有趣的文字,生活和远方。
个人博客:https://blog.csdn.net/weixin_45791445
有问题欢迎QQ联系:1059320343 (记得备注CSDN)
个人微信公众号:小康小白
一,什么是类,如何创建类
- 题目:
题目代码:
package step1;
public class Test {
public static void main(String[] args) {
//创建Dog对象
//设置Dog对象的属性
//输出小狗的属性
System.out.println("名字:" + + ",毛色:" + + ",品种:" + );
//调用方法
}
}
//在这里定义Dog类
- 答案:
package step1;
public class Test {
public static void main(String[] args) {
//创建Dog对象
//设置Dog对象的属性
Dog wuhuarou = new Dog();
wuhuarou.name = "五花肉";
wuhuarou.color = "棕色";
wuhuarou.variety = "阿拉斯加";
//输出小狗的属性
System.out.println("名字:" + wuhuarou.name + ",毛色:" + wuhuarou.color + ",品种:" + wuhuarou.variety );
//调用方法
wuhuarou.eat();
wuhuarou.run();
}
}
//在这里定义Dog类
class Dog{
String name;
String color;
String variety;
void eat(){
System.out.println("啃骨头");
}
void run(){
System.out.println("叼着骨头跑");
}
}
二,构造方法:
- 题目:
题目代码:
package step2;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
String sex = sc.next();
//分别使用两种构造器来创建Person对象
}
}
//创建Person对象,并创建两种构造方法
- 答案:
package step2;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
String sex = sc.next();
//分别使用两种构造器来创建Person对象
Person person1 = new Person();
Person person2 = new Person(name,sex);
}
}
//创建Person对象,并创建两种构造方法
class Person {
public Person(){
System.out.println("一个人被创建了");
}
public Person(String name,String sex){
System.out.println("姓名:"+name+",性别:"+sex+",被创建了");
}
}
三,选择题
1、下列关于构造方法的说法不正确的是()
A、Java语言规定构造方法名必须与类名相同
B、Java语言规定构造方法没有返回值,且不用void关键字声明
C、 构造方法不可以重载
D、 构造方法只能用new关键字来创建
2、类Test定义如下:
public class Test{
public float method1(){
System.out.println("方法1");
return 1.5;
}
}
将下列哪些方法插入到第7行是合法的()(多选)
A、
public float method1(){
System.out.println(“方法2”);
return 1.1;
}
B、
public Test1(){
System.out.println(“hello”);
}
C、
public float method1( int a){
System.out.println(“方法2”);
return a+0.5;
}
D、
public Test(){
System.out.println(“hello”);
}
- 答案:C CD
四,this关键字
- 题目:
package step3;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
int age = sc.nextInt();
String sex = sc.next();
Person p = new Person(name,age,sex);
p.display();
}
}
class Person{
String name = "张三";
int age = 18;
String sex = "男";
// 请在此编写代码
/********** Begin **********/
public Person(String name,int age,String sex){
this(age);
name = name;
sex = sex;
}
public Person(int age){
age = age;
}
/********** End **********/
public void display(){
String name = "李四";
int age = 11;
String sex = "男";
System.out.println("name:" + name);
System.out.println("age:" + age);
System.out.println("sex:" + sex);
}
}
- 题目代码:
package step3;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
int age = sc.nextInt();
String sex = sc.next();
Person p = new Person(name,age,sex);
p.display();
}
}
class Person{
String name = "张三";
int age = 18;
String sex = "男";
// 请在此编写代码
/********** Begin **********/
public Person(String name,int age,String sex){
this(age);
this.name = name;
this.sex = sex;
}
public Person(int age){
this.age = age;
}
/********** End **********/
public void display(){
String name = "李四";
int age = 11;
String sex = "男";
System.out.println("name:" +this.name);
System.out.println("age:" + this.age);
System.out.println("sex:" + this.sex);
}
}
五,类与对象练习
- 题目:
package step4;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String theMa = sc.next();
int quantity = sc.nextInt();
boolean likeSoup = sc.nextBoolean();
//使用三个参数的构造方法创建WuMingFen对象 取名 f1
//使用两个参数的构造方法创建WuMingFen对象 取名 f2
//使用无参构造方法创建WuMingFen对象 取名 f3
//分别调用三个类的 check方法
}
}
- 题目:
package step4;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String theMa = sc.next();
int quantity = sc.nextInt();
boolean likeSoup = sc.nextBoolean();
//使用三个参数的构造方法创建WuMingFen对象 取名 f1
WuMingFen wumingfen1 = new WuMingFen(theMa,quantity,likeSoup);
//使用两个参数的构造方法创建WuMingFen对象 取名 f2
WuMingFen wumingfen2 = new WuMingFen(theMa,quantity);
//使用无参构造方法创建WuMingFen对象 取名 f3
WuMingFen wumingfen3 = new WuMingFen();
//分别调用三个类的 check方法
wumingfen1.check();
wumingfen2.check();
wumingfen3.check();
}
}
六,static关键字
- 题目:
题目代码:
package step5;
public class Test {
String name = "楚留香";
{
System.out.println("hello educoder");
}
public static void main(String[] args) {
System.out.println("我叫" + name);
study();
}
public void study(){
System.out.println("我喜欢在educoder上学习java");
}
}
- 答案:
package step5;
public class Test {
static String name = "楚留香";
static{
System.out.println("hello educoder");
}
public static void main(String[] args) {
System.out.println("我叫" + name);
study();
}
public static void study(){
System.out.println("我喜欢在educoder上学习java");
}
}
七,选择题
1、有如下代码:
public class TestMain{
public static void main(String args[]){
MyClass mc1 = new MyClass();
MyClass mc2 = new MyClass();
mc1.a = 100;
mc1.b = 200;
mc2.a = 300;
mc2.b = 400;
System.out.println(mc1.a);
System.out.println(mc1.b);
System.out.println(mc2.a);
System.out.println(mc2.b);
}
}
class MyClass{
static int a;
int b;
}
请问输出结果是()
A、
100
100
100
100
B、
100
200
300
400
C、
400
400
400
400
D、
300
200
300
400
2、
class MyClass {
int a;
static int b;
void fa(){
}
static void fb(){
}
public void m1(){
System.out.println(a); //位置1
System.out.println(b); //位置2
fa(); //位置3
fb(); //位置4
}
public static void m2(){
System.out.println(a); //位置5
System.out.println(b); //位置6
fa(); //位置7
fb(); //位置8
}
}
上述代码会出错的位置有:()(多选)
A、
位置1
B、
位置2
C、
位置3
D、
位置4
E、
位置5
F、
位置6
G、
位置7
3、
class MyClass {
static int i = 10;
static {
i = 20;
System.out.println(“In Static”);
}
public MyClass() {
System.out.println("MyClass()");
}
public MyClass(int i) {
System.out.println("MyClass(int)");
this.i = i;
}
}
public class TestMain {
public static void main(String args[]) {
MyClass mc1 = new MyClass();
System.out.println(mc1.i);
MyClass mc2 = new MyClass(10);
System.out.println(mc2.i);
}
}
上述代码的运行结果是:()
A、
MyClass()
20
MyClass(int)
10
B、
In Static
MyClass()
20
MyClass(int)
10
C、
In Static
MyClass(int)
20
MyClass()
10
D、
In Static
MyClass()
10
MyClass(int)
20
- 答案:D EG B
本文地址:https://blog.csdn.net/weixin_45791445/article/details/110841624